We Spun the Wheel 1,000,000 Times. Here Is How Fair It Is

We spun a 10-name wheel one million times using exactly the method our wheel uses to pick a winner. Every name won between 99,470 and 100,597 times. A perfectly even split would be 100,000 each, so the biggest gap from perfect was 0.6%, which is exactly the kind of small wobble you expect from true randomness.

Key facts

  • 1,000,000 spins, 10 names: each name won 99,470 to 100,597 times.
  • The largest difference from a perfect 100,000 was 0.6%.
  • A chi-square test gives p = 0.42: no sign of any name being favoured.
  • The winner is chosen by a cryptographically secure random generator before the wheel moves.
Bar chart of how many times each of 10 names won in one million spins
Wins per name in 1,000,000 simulated spins of a 10-name wheel. The dashed line is a perfect 100,000.

How we ran the test

Our wheel picks a winner with crypto.getRandomValues, the secure random number generator built into every modern browser. It produces a random whole number, which we turn into a fraction between 0 and 1 and multiply by the number of entries. The whole-number part is the winner.

For this test we ran the same calculation one million times with the same kind of generator (Node.js uses the operating system’s secure randomness, just like a browser), on a wheel with 10 names, and counted how often each one came up.

The results

Name Wins Difference from 100,000
Name 1 99,470 −0.53%
Name 2 100,597 +0.60%
Name 3 99,798 −0.20%
Name 4 100,004 +0.00%
Name 5 99,954 −0.05%
Name 6 99,834 −0.17%
Name 7 99,968 −0.03%
Name 8 100,067 +0.07%
Name 9 100,437 +0.44%
Name 10 99,871 −0.13%

Is that “fair enough”?

Yes, and here is why the numbers are not all exactly 100,000. If the results were perfectly equal, that would actually be suspicious: real randomness always produces small ups and downs. Statisticians check this with a chi-square test, which asks how likely differences this big would be if every name truly had a 10% chance. Our result, p = 0.42, means differences this size happen 42% of the time with a perfectly fair wheel. A sign of bias would be a p-value below 0.05.

Why the animation cannot cheat

On many spinner sites the winner is wherever the wheel happens to stop, so the result depends on the animation, your device speed or the moment you click. On SpinTheWheelPro the winner is drawn first, and the wheel is then animated to land at a random point inside that winner’s slice. Nothing you see on screen can change the result. You can read more in how the wheel works.

Does a physical wheel do as well?

Usually not. Physical randomisers have small biases. A 2023 study of 350,757 real coin flips found coins land on the same side they started on about 50.8% of the time. We look at that in coin vs dice vs wheel.

Sources

  • Our own simulation: 1,000,000 draws with Node.js crypto.getRandomValues, 10 entries.
  • MDN Web Docs: Crypto.getRandomValues().

Similar Posts