The Full 32-Test Audit Suite

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.

32
Statistical Tests
5
Test Categories
100k+
Outcomes per Game
0.01
Significance Level (α)

Section A: NIST SP 800-22 Core Open Source

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.

1. Chi-Square Goodness of Fit

#01
100-bin distribution test

Tests if outcomes are uniformly distributed across 100 equal bins. The most fundamental fairness check — are all values equally likely?

Detects: Biased outcome distributions, skewed ranges, missing values

2. Kolmogorov-Smirnov

#02
Continuous distribution test (Stephens correction)

Measures the maximum distance between the observed and theoretical uniform distribution. More sensitive than Chi-Square for continuous data.

Detects: Any deviation from uniform distribution, subtle skew

3. Monobit / Frequency Test

#03
NIST SP 800-22 Section 2.1

Converts outcomes to bits and checks the proportion of 0s vs 1s. The simplest NIST test — are there roughly equal numbers of each?

Detects: Overall bias toward high or low outcomes

4. Runs Test

#04
NIST SP 800-22 Section 2.3

Counts uninterrupted sequences of identical bits. Too many or too few runs indicates non-randomness.

Detects: Repeating patterns (0-0-0-0-1-1-1-1), predictable sequences

5. Block Frequency

#05
NIST SP 800-22 Section 2.2

Checks frequency balance within 128-bit blocks. Catches local bias that global tests miss.

Detects: Local bias — sequences that are fair overall but unfair in sections

6. Cumulative Sums

#06
NIST SP 800-22 Section 2.13

Tracks the running sum of +1/-1 converted bits. The maximum excursion should stay within expected bounds.

Detects: Drift — outcomes trending in one direction over time

7. Serial Correlation

#07
Lag-1 autocorrelation coefficient

Measures whether consecutive outcomes are correlated. In random data, knowing outcome N should tell you nothing about outcome N+1.

Detects: Sequential dependence, predictable next values

8. Runs Up/Down

#08
Wald-Wolfowitz trend test

Counts monotonic runs (increasing or decreasing sequences). The number and length of trends should match random expectations.

Detects: Trending sequences, gradual manipulation

Section B: NIST SP 800-22 Extended Proprietary

Eight additional NIST tests that require significantly more computational power and mathematical sophistication. These catch subtle non-randomness that basic tests miss entirely.

9. Approximate Entropy

#09
NIST SP 800-22 Section 2.12

Measures the frequency of overlapping m-bit patterns. True random data has maximum entropy — all patterns equally likely. Low entropy means outcomes are predictable.

Detects: Subtle pattern repetition invisible to frequency tests

10. Linear Complexity

#10
NIST SP 800-22 Section 2.10 — Berlekamp-Massey

Determines the shortest linear feedback shift register (LFSR) that could generate the sequence. Random data requires maximum-length LFSRs.

Detects: LFSR-based RNGs, linearly predictable sequences

11. Maurer's Universal

#11
NIST SP 800-22 Section 2.9

Measures compressibility. If the sequence can be significantly compressed, it's not random. This test catches any deviation that increases predictability.

Detects: Any structural regularity, compressible patterns

12. Non-overlapping Template

#12
NIST SP 800-22 Section 2.7

Searches for specific bit patterns and counts occurrences. Random data should contain each pattern with expected frequency — no more, no less.

Detects: Pattern manipulation, outcome steering

13. Overlapping Template

#13
NIST SP 800-22 Section 2.8

Like non-overlapping but counts overlapping occurrences of templates. More sensitive to certain types of pattern injection.

Detects: Overlapping pattern anomalies, template frequency bias

14. Longest Run of Ones

#14
NIST SP 800-22 Section 2.4

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.

Detects: Abnormal run lengths, constrained randomness

15. Binary Matrix Rank

#15
NIST SP 800-22 Section 2.5

Divides bits into 32x32 matrices and checks their rank distribution. Random matrices have a very specific rank distribution — deviations indicate structure.

Detects: Linear dependence between bits, structured non-randomness

16. Spectral / DFT

#16
NIST SP 800-22 Section 2.6

Applies Discrete Fourier Transform and checks peak heights. Random data has 95% of spectral peaks below threshold. Periodic manipulation creates visible spikes.

Detects: Periodic patterns, cyclic manipulation, frequency-domain anomalies

Section C: Advanced Statistical Analysis Proprietary

Nine tests that go beyond NIST — measuring information-theoretic properties, multi-lag correlations, and deep structural analysis of the outcome sequence.

17. Time-Series Drift

#17
Sliding window linear regression

Splits outcomes into time windows and checks if the mean drifts. Catches casinos that start fair and gradually introduce bias — invisible in aggregate statistics.

Detects: Gradual unfairness, time-dependent manipulation

18. Multi-Lag Autocorrelation

#18
Lag 1-20 with Bonferroni correction

Tests autocorrelation at 20 different lag values simultaneously. Random data has near-zero correlation at all lags — any spike means predictability.

Detects: Periodic manipulation at any frequency, hidden cycles

19. Entropy Rate

#19
Shannon + Min-entropy (256-bin)

Measures both Shannon entropy and min-entropy. True uniform data has maximum entropy. Low min-entropy means some outcomes are more likely than others.

Detects: Predictable outcomes, non-uniform probability mass

20. Permutation Entropy

#20
Ordinal pattern analysis (d=5)

Analyzes the ordinal patterns in consecutive 5-tuples. All 120 possible patterns should be equally likely. Missing or over-represented patterns reveal hidden structure.

Detects: Hidden ordering structure, non-random sequencing

21. Gap Test

#21
von Mises gap analysis

Measures gaps between occurrences of values in a specified range. Gap lengths should follow a geometric distribution if the RNG is truly random.

Detects: Value avoidance, artificial spacing of outcomes

22. Poker Test

#22
Partition-based (k=4, d=10)

Groups outcomes into "hands" and tests if all possible patterns occur with expected frequency. Classic independence test — are consecutive values truly independent?

Detects: Digit dependence, non-independent consecutive outcomes

23. Quartile Balance

#23
4-bin uniformity test

Divides [0,1) into quartiles and tests balance. Specifically catches "near miss" manipulation — outcomes clustering just below win thresholds.

Detects: Near-miss manipulation, threshold-aware outcome steering

24. Birthday Spacing

#24
Birthday paradox collision test

Based on the birthday paradox. Spacing between collisions in discretized sequences should follow a Poisson distribution. Non-random sequences produce non-Poisson spacings.

Detects: Non-Poisson collision patterns, structured pseudo-randomness

25. Coupon Collector

#25
Complete set collection analysis

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.

Detects: Outcome avoidance, incomplete coverage of value space

Section D: Gaming-Specific Tests Proprietary

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.

26. Hot/Cold Streak Anomaly

#26
Geometric distribution + Fisher's method

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.

Detects: Artificial losing streaks, manipulated win patterns, "near miss" engineering

27. Crash Multiplier Distribution

#27
Multi-threshold inverse distribution test

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.

Detects: Suppressed high multipliers, manipulated payout curves

28. House Edge Deviation

#28
Advertised vs. observed edge comparison

Compares the casino's advertised house edge with the statistically observed edge. A casino claiming 1% but delivering 3% is provably dishonest.

Detects: Hidden house edge, higher-than-advertised take rate

Section E: Cross-Game & Behavioral Proprietary

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.

29. Cross-Game Correlation

#29
Pearson + Fisher z-transform

Tests if outcomes from different games (dice, crash, roulette) using the same seed pair are independent. Correlation means the casino leaks information between games.

Detects: Inter-game information leakage, correlated RNG streams

30. Seed Rotation Anomaly

#30
Session length z-score analysis

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.

Detects: Win-triggered seed rotation, reactive manipulation

31. Deposit-Triggered Bias

#31
Paired t-test (before/after deposits)

Compares outcome distributions before and after deposit events. If the casino adjusts outcomes based on deposits, the distributions will differ significantly.

Detects: Deposit-responsive manipulation, personalized unfairness

32. Multi-Session Persistence

#32
Bartlett's test for variance homogeneity

Tests if outcome quality remains consistent across multiple sessions. A fair casino produces equally random outcomes in session 1 and session 100.

Detects: Session-dependent fairness, degrading randomness over time

Open Source vs. Full Audit

Community Edition (Free)

  • 8 NIST SP 800-22 core tests
  • Single seed pair analysis
  • CLI output + basic pass/fail
  • Chi-Square, KS, Monobit, Runs
  • Block Frequency, CuSum, Serial Corr.
  • Runs Up/Down trend detection
Get on GitHub →

Full Audit (32 Tests)

  • Everything in Community Edition, plus:
  • 8 additional NIST extended tests
  • 9 advanced statistical tests
  • 3 gaming-specific tests
  • 4 cross-game & behavioral tests
  • Time-series drift detection
  • Multi-lag autocorrelation (1-20)
  • Deposit-triggered bias analysis
  • Professional HTML scorecard
View Published Audits →

All tests use significance level α = 0.01 (99% confidence).
A casino passes if ≥75% of tests pass per NIST recommendation.

Read Full Methodology