Every test we run, what it catches, and why it matters. The open-source tool has 8 tests. Our full audits use 32 — covering NIST cryptographic standards, advanced statistical analysis, and gaming-specific manipulation detection.
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.
Eight additional NIST tests that require significantly more computational power and mathematical sophistication. These catch subtle non-randomness that basic tests miss entirely.
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.
Nine tests that go beyond NIST — measuring information-theoretic properties, multi-lag correlations, and deep structural analysis of the outcome sequence.
Splits outcomes into time windows and checks if the mean drifts. Catches casinos that start fair and gradually introduce bias — invisible in aggregate statistics.
Tests autocorrelation at 20 different lag values simultaneously. Random data has near-zero correlation at all lags — any spike means predictability.
Measures both Shannon entropy and min-entropy. True uniform data has maximum entropy. Low min-entropy means some outcomes are more likely than others.
Analyzes the ordinal patterns in consecutive 5-tuples. All 120 possible patterns should be equally likely. Missing or over-represented patterns reveal hidden structure.
Measures gaps between occurrences of values in a specified range. Gap lengths should follow a geometric distribution if the RNG is truly random.
Groups outcomes into "hands" and tests if all possible patterns occur with expected frequency. Classic independence test — are consecutive values truly independent?
Divides [0,1) into quartiles and tests balance. Specifically catches "near miss" manipulation — outcomes clustering just below win thresholds.
Based on the birthday paradox. Spacing between collisions in discretized sequences should follow a Poisson distribution. Non-random sequences produce non-Poisson spacings.
Measures how long it takes to observe all possible values. In random data, collection time follows a known distribution. Avoidance of certain outcomes increases collection time.
Tests designed specifically for casino game mechanics. These don't exist in any standard test battery — they target the unique ways online casinos can manipulate provably fair outcomes.
Analyzes winning and losing streak lengths. In random data, streaks follow a geometric distribution. Abnormal streaks indicate the casino creates artificial "near misses" or forces losses after wins.
Verifies crash multipliers at 8 thresholds (1.5x to 100x). For fair crash: P(≥m) = 1/m minus house edge. Tests the full distribution, not just the instant-bust rate.
Compares the casino's advertised house edge with the statistically observed edge. A casino claiming 1% but delivering 3% is provably dishonest.
The most advanced category. These tests require data from multiple games, multiple sessions, or deposit event logs. They catch the most sophisticated forms of manipulation — the kind that per-game, per-session tests never see.
Tests if outcomes from different games (dice, crash, roulette) using the same seed pair are independent. Correlation means the casino leaks information between games.
Analyzes whether seed rotations correlate with player wins. If a casino rotates seeds only after big wins, session lengths near winning events will be suspiciously short.
Compares outcome distributions before and after deposit events. If the casino adjusts outcomes based on deposits, the distributions will differ significantly.
Tests if outcome quality remains consistent across multiple sessions. A fair casino produces equally random outcomes in session 1 and session 100.
All tests use significance level α = 0.01 (99% confidence).
A casino passes if ≥75% of tests pass per NIST recommendation.