WheelMigo

Is a yes/no wheel exactly 50/50? We measured it

A fair yes/no wheel is not one that alternates. It is one that has no memory. We measured it to see what that looks like in numbers.

Quick answer

Yes. Measured over 10,000,000 spins of WheelMigo's real selection code, a yes/no wheel gave Yes 50.007% and No 49.993%, a gap of 0.007 percentage points against normal random noise of about 0.016. The wheel has no memory: after five identical answers in a row the next answer was the same 49.96% of the time. Streaks as long as 24 in a row appeared, and in ten spins a lopsided 8–2 or worse split came up 10.9% of the time, exactly what a fair coin predicts. A run of the same answer is not evidence of bias.

Key points

  • Over 10,000,000 spins: Yes 5,000,660 (50.007%), No 4,999,340 (49.993%). The gap is 0.007 points; ordinary noise at this size is about 0.016 points.
  • After five identical answers in a row (624,723 cases), the next answer matched 49.96% of the time. The wheel does not remember.
  • The longest run of one answer was 24; runs of ten or more happened 9,672 times, close to the 9,766 a fair coin predicts.
  • In ten spins, a split of 8–2 or worse happened 10.95% of the time. The exact fair-coin figure is 10.94%.
  • A fair wheel still fails a 5% significance test about 5% of the time, so a single 'unlucky' batch is not proof of bias.

People ask whether a yes/no wheel is really 50/50, and the evidence they usually offer is a streak: it said No four times in a row, so it must be rigged. A streak cannot settle that. Only a very large count can. So we ran the exact selection code behind WheelMigo ten million times on a two-segment Yes/No wheel and looked at what came out.

How we tested

WheelMigo picks its result with a function called randomInt, which draws a 32-bit number from the browser's crypto.getRandomValues and throws away the small range that would not divide evenly (rejection sampling). For two entries nothing is ever thrown away, because 2 to the power 32 divides evenly by 2. The wheel then turns so it stops on the segment that was already chosen. We called randomInt(2) 10,000,000 times, counted Yes and No, and kept the whole sequence to study streaks. The script is in the project as scripts/fairness-yes-no.mjs, and results change slightly on every run because the source is cryptographic.

The split: as close to 50/50 as ten million spins can show

ResultSpinsShare
Yes5,000,66050.007%
No4,999,34049.993%
Gap from 50/501,320 spins0.007 points

Noise is expected. With 10,000,000 fair spins the Yes count typically lands within about 1,581 of the half-way mark (one standard deviation, the square root of 10,000,000 times a quarter). Our gap was 1,320 spins from the middle, or 0.42 standard deviations, and the chi-square statistic was 0.17 (p about 0.68). That is what a fair source looks like: not exactly 5,000,000, but not distinguishable from it either.

Streaks: they look suspicious and are normal

A fair coin makes the same call several times in a row far more often than people expect. We counted runs of the same answer in the 10,000,000 spins and compared them with what a fair coin predicts.

Run of the same answer, at leastObservedExpected from a fair coin
5 in a row312,608312,500
10 in a row9,6729,766
15 in a row334305
20 in a row1410

The longest run was 24 in a row. For ten million fair spins the longest run is typically around 23, because it grows with the base-2 logarithm of the number of spins. So a wheel that says Yes ten times running is not broken; across enough spins it is certain to happen.

The wheel has no memory

The gambler's fallacy is the belief that after a streak the other answer is 'due'. We tested that directly: every time the last five answers were identical (624,723 times), we looked at the next one. It matched the streak 312,115 times, which is 49.96%. A streak does not change the next spin. The odds are 50/50 each time, so if you have just seen five Yes in a row, the next is still a coin flip.

Short runs look lopsided

Most real decisions use a handful of spins, and small samples are uneven. We split the sequence into 1,000,000 blocks of ten spins and counted how many Yes each block had.

Yes in ten spinsObservedExact for a fair coin
Exactly 524.59%24.61%
6 or 440.93%41.02%
7 or 323.53%23.44%
8, 9 or 10 (or 2, 1, 0)10.95%10.94%
All ten the same0.195%0.195%

A 5–5 split is only about one block in four. Roughly one block in nine is 8–2 or more lopsided, and about one in 500 is ten of the same. If you spin ten times and get 7–3, you have seen the ordinary behaviour of a fair coin, not evidence of a bias. Even over 100 spins, 3.47% of blocks fell outside 40 to 60 Yes, against 3.52% by exact calculation.

How to tell a biased wheel from a lucky batch

A fair picker still looks wrong occasionally, and that is part of how the statistics work. We ran 200 independent batches of 1,000,000 spins (200,000,000 spins in all) and computed the same chi-square statistic for each. Its average was 0.99, where a fair source averages 1.00. Seven batches (3.5%) went above 3.84, the usual 5% cut-off; about ten would be expected by chance. So a single batch that fails the test once in twenty is not proof of bias. A real bias shows up in every batch, not in one.

When 50/50 is not true

Yes/No at 50/50 holds because there are exactly two equal entries. Change the list and the odds change. Add a third entry, Maybe, and each answer has a one-in-three chance; add Yes twice and Yes has two chances in three. WheelMigo shows the odds for the current list under the wheel, so you can check what you are about to spin.

The quality of the random source matters when the list is not a power of two. A common shortcut takes one random byte and divides by the number of entries. A byte has 256 values, so with two entries it is exactly even, but with three it gives 86 values to the first entry and 85 to each of the others. By arithmetic that is 33.59% for the first entry and 33.20% for the others, instead of 33.33% each. It is a small gap, but it favours the same entry every time. Our earlier test of a seven-name list measured the same effect at 2.78%.

EntriesByte shortcutWheelMigo
Yes / No50.00% each (256 divides by 2)50.00% each
Yes / No / Maybe33.59% / 33.20% / 33.20% by arithmetic33.33% each

Using a yes/no wheel well

  • Decide what each answer will mean before you spin, and commit to it. Spinning again until you get the answer you wanted turns a random decision into a preference.
  • Use it for low-stakes either/or choices where the options are close. For decisions that depend on facts, use the facts.
  • Do not read patterns into a short run of answers. Ten spins can easily land 7–3.
  • If the list has more than two entries, check the odds shown under the wheel.

For more on how the wheel picks, see how WheelMigo picks a name, and for the earlier seven-name measurement, see the random name picker fairness test.

How this works

We ran WheelMigo's actual selection function, randomInt in src/core.ts (crypto.getRandomValues for a 32-bit integer, rejection sampling, then remainder), 10,000,000 times with two outcomes and stored the sequence. We counted outcomes, runs of identical answers, the next answer after five identical answers, the Yes count in 1,000,000 blocks of ten and 100,000 blocks of 100, and, separately, the chi-square statistic for 200 batches of 1,000,000 spins. Expected values come from the binomial distribution and the fair-coin run formulas. The run was made on October 4, 2026. Results differ slightly on every run; the script scripts/fairness-yes-no.mjs reproduces the experiment.

Frequently asked questions

Is a yes/no wheel exactly 50/50?
Each spin is 50/50. Over 10,000,000 spins of WheelMigo's selection code, Yes won 50.007% and No 49.993%, a gap well inside normal random noise. Over a short run the counts will rarely be exactly even, and that is normal.
Why did my yes/no wheel land on the same answer five times in a row?
That happens in a fair coin. In our 10,000,000 spins, runs of at least five identical answers occurred 312,608 times, and the longest run was 24. A streak is not evidence of bias.
After a streak of Yes, is No more likely next?
No. After five identical answers in a row, the next answer was the same 49.96% of the time in our test. Each spin is independent.
How many spins do I need to tell whether a wheel is fair?
Many. A single batch can look uneven by chance, and a fair source fails a 5% test about 5% of the time. A real bias shows up consistently across many batches, not in one short run.
Does WheelMigo decide the result before the wheel spins?
Yes. The selection function picks the result first, and the wheel then turns so that it stops on that segment. The animation does not change the odds.
Is a three-way Yes/No/Maybe wheel fair?
With a fair selection method each answer has a one-in-three chance. A common byte-based shortcut would give 33.59%, 33.20% and 33.20% by arithmetic; WheelMigo uses rejection sampling to avoid that.

References

  1. MDN — Crypto.getRandomValues()
  2. Wikipedia — Gambler's fallacy
  3. Wikipedia — Binomial distribution
  4. Wikipedia — Chi-squared test

← All articles