Room for ChanceThe science of chance

RoomForChance Lab · Experiment 01

Ten million 6/49 draws: how uneven does fair look?

Can a fair model produce a convincing hot-number leaderboard even after a very large sample?

Executed 22 September 2026 · Synthetic model experiment · Reproducible PCG64 stream

What happened

The lowest count was 1,221,974 and the highest was 1,227,407, around a common expectation of 1,224,489.796. At least one adjacent pair appeared in 49.49696% of draws.

The spread is the subject of the experiment, not a ranking to use next time. Every simulated draw used the same label probabilities. The most extreme labels were identified after all 49 counts had been inspected. Their extremeness should not be evaluated as if they had been specified before the run.

All 49 inclusion counts from 10,000,000 synthetic 6/49 draws, centered on N × 6/49 and scaled by the standard deviation for one prespecified label. The counts are dependent; this is not a simultaneous significance test.
Figure 1. All 49 inclusion counts from 10,000,000 synthetic 6/49 draws, centered on N × 6/49 and scaled by the standard deviation for one prespecified label. The counts are dependent; this is not a simultaneous significance test.

Method and benchmark

10,000,000 independent uniform six-number subsets of 1–49. Count every inclusion; compare with N × 6/49. The CSV contains all 49 sufficient frequency totals, not the raw draws.

For a fixed label, X has a binomial marginal distribution with p=6/49 and N=10,000,000. The sum of all counts is exactly 60,000,000. This provides a strong conservation check. The labels’ counts are dependent because each draw contains exactly six selections.

Reproduction record

Python 3.12.14 · NumPy 2.3.5 · NumPy PCG64 · seed 20260923. Each experiment starts a separate stream. Code and all datasets are linked below.

What this does not establish

A simulated fair process cannot certify a real lottery. Individual counts are binomial; counts for different numbers are dependent. The maximum is selected after inspecting 49 counts.

The downloadable CSV contains all 49 aggregate counts and their expectations. It does not contain ten million raw lines. The published seed and program regenerate those lines and the reported totals. This compact representation is sufficient to rebuild the frequency figure.

These are original educational simulations prepared for RoomForChance. They are not historical lottery records, a physical-machine audit, an external peer review or evidence of a prediction advantage.

Inspect the data

Download ten-million-649-draws.csv · All results and metadata (JSON) · Download the complete Python program · Download figure-generation code

Published aggregate results · synthetic data
numberobservedexpected
11,224,8021,224,489.8
21,223,9971,224,489.8
31,225,5511,224,489.8
41,225,9431,224,489.8
51,225,2941,224,489.8
61,225,3851,224,489.8
71,222,5001,224,489.8
81,223,6411,224,489.8
91,224,4781,224,489.8
101,222,1591,224,489.8
111,223,9941,224,489.8
121,225,2991,224,489.8
131,225,1341,224,489.8
141,223,0801,224,489.8
151,224,2341,224,489.8
161,226,1221,224,489.8
171,222,8071,224,489.8
181,226,0401,224,489.8
191,223,5771,224,489.8
201,224,4451,224,489.8
211,223,1491,224,489.8
221,227,4071,224,489.8
231,223,5411,224,489.8
241,225,1011,224,489.8
251,226,0991,224,489.8
261,224,2751,224,489.8
271,224,6221,224,489.8
281,223,1821,224,489.8
291,226,1191,224,489.8
301,226,5381,224,489.8
311,223,3391,224,489.8
321,225,4961,224,489.8
331,225,1291,224,489.8
341,224,7581,224,489.8
351,222,4191,224,489.8
361,225,1511,224,489.8
371,221,9741,224,489.8
381,225,1491,224,489.8
391,223,9801,224,489.8
401,225,2171,224,489.8
411,223,3011,224,489.8
421,225,8751,224,489.8
431,224,5241,224,489.8
441,224,3791,224,489.8
451,223,6711,224,489.8
461,223,5151,224,489.8
471,224,6311,224,489.8
481,225,4121,224,489.8
491,223,5651,224,489.8

Reproduce the experiment

Download the Python program to an empty working folder. Use the recorded environment for an exact replay. The program runs all eleven studies and creates a lab-data folder containing the result files. The largest study performs ten million draws; allow time for it to finish.

python -m pip install numpy==2.3.5
python run_experiments.py

Expected CSV SHA-256: 6f7cc9bcd5f49fdfdc25ae10f64180ae8b767b85e365ae7b28678dd21229aba9. A matching seed alone is insufficient if you change the implementation or call sequence. The CSV files use CC BY 4.0; the original code uses the MIT license included with the downloads.

Read the reasoning

Canada LOTTO 6/49: Classic Draw Odds and the Separate Gold Ball Question
Why the Classic Draw has 13,983,816 main combinations and why that denominator does not describe Canada’s separate Gold Ball Draw.

Expected vs Observed Lottery Frequencies: Reading a Table Properly
Learn expected counts, standard deviations and selection effects so a lottery frequency table describes data without pretending to predict the future.

Lottery Number Sums: Why Middle Totals Are Common
Derive the expected sum and variance of a uniform lottery draw, and explain why selecting a common sum does not improve a ticket’s odds.

True Random vs Pseudorandom: Which Difference Matters?
Compare physical entropy and deterministic random streams without confusing reproducibility, statistical quality and cryptographic security.

What Is Randomness? Probability, Patterns and Uncertainty
Understand randomness through fair draws, unpredictable outcomes and the crucial difference between a random process and a random-looking result.

Technical references

NumPy PCG64 documentation describes the generator family. Harvard Stat 110 provides university-level probability background. The model-specific derivation is linked above.