Every test we run, what it catches, and why it matters. The open-source Community Edition has 8 tests. Our full audits run all 15 NIST SP 800-22 tests plus 4 additional statistical tests — 19 core tests per game, plus game-specific validation.
The foundation. Eight tests from the NIST standard for testing random number generators. These are included in our open-source tool — anyone can run them.
Tests if outcomes are uniformly distributed across 100 equal bins. The most fundamental fairness check — are all values equally likely?
Measures the maximum distance between the observed and theoretical uniform distribution. More sensitive than Chi-Square for continuous data.
Converts outcomes to bits and checks the proportion of 0s vs 1s. The simplest NIST test — are there roughly equal numbers of each?
Counts uninterrupted sequences of identical bits. Too many or too few runs indicates non-randomness.
Checks frequency balance within 128-bit blocks. Catches local bias that global tests miss.
Tracks the running sum of +1/-1 converted bits. The maximum excursion should stay within expected bounds.
Measures whether consecutive outcomes are correlated. In random data, knowing outcome N should tell you nothing about outcome N+1.
Counts monotonic runs (increasing or decreasing sequences). The number and length of trends should match random expectations.
Eleven additional NIST tests that complete the full SP 800-22 battery. These require more computational power and catch subtle non-randomness that the core tests miss.
Measures the frequency of overlapping m-bit patterns. True random data has maximum entropy — all patterns equally likely. Low entropy means outcomes are predictable.
Determines the shortest linear feedback shift register (LFSR) that could generate the sequence. Random data requires maximum-length LFSRs.
Measures compressibility. If the sequence can be significantly compressed, it's not random. This test catches any deviation that increases predictability.
Searches for specific bit patterns and counts occurrences. Random data should contain each pattern with expected frequency — no more, no less.
Like non-overlapping but counts overlapping occurrences of templates. More sensitive to certain types of pattern injection.
Examines the longest run of consecutive 1s in each block. Too-long or too-short runs indicate the RNG is not producing genuinely random output.
Divides bits into 32x32 matrices and checks their rank distribution. Random matrices have a very specific rank distribution — deviations indicate structure.
Applies Discrete Fourier Transform and checks peak heights. Random data has 95% of spectral peaks below threshold. Periodic manipulation creates visible spikes.
Tests the frequency of all overlapping m-bit patterns. Extends the Monobit and Block Frequency concepts to check pair and triplet uniformity across the full bitstream.
Converts the bitstream to a random walk and analyzes cycle structure. Counts visits to states -4 through +4 within each cycle. Non-random walks produce abnormal visit frequencies.
Counts total visits to each state in the random walk (states -9 through +9). More sensitive than Random Excursions for detecting deviations from expected visit frequencies.
Tests designed for specific casino game mechanics. These validate that the transformation from raw RNG output to game result produces the expected distribution. 1–2 tests run per game type, depending on the game being audited.
Verifies the rate of instant-bust rounds (1.00x multiplier) matches the expected house edge. For Stake/Bustabit: ~4.0% (1/33 + rounding). For Roobet: ~5.95% (1/20 + rounding). Deviations indicate manipulated house edge.
Tests that dice outcomes across 0–100 are uniformly distributed. Each value should appear with equal probability — any deviation means the dice are loaded.
Verifies that coin flips produce a true 50/50 split between heads and tails within expected statistical variance.
Tests that all 37 roulette slots (0–36) receive roughly equal hits. Catches both uniform bias and targeted slot manipulation.
All tests use significance level α = 0.01 (99% confidence).
A casino passes if ≥75% of tests pass per NIST recommendation.