Fairness · September 2026

Is Spin the Wheel Random? We Tested 1,000,000 Spins

By the NameWheel team · 11 minute read · Updated September 26, 2026
The short answer

Yes, a good spinning wheel is random, and you can check it. We ran NameWheel's own winner picking code 1,000,000 times on a 12 name wheel. Every name won between 8.28% and 8.36% of the spins, against a perfect share of 8.33%. The biggest gap from a perfect split was 0.63%, and a standard statistical test gave the results a clean pass (p = 0.6964).[3]

1,000,000
spins of a 12 name wheel, every winner counted
0.63%
the largest gap between any name and a perfect share
6
the longest winning streak by one name in a million spins

"The wheel is rigged" might be the most common comment under any giveaway, and the most common worry in a classroom where the same kid gets picked twice. It is a fair question. You cannot see inside a website, and a spinning animation proves nothing on its own. So instead of telling you our wheel is fair, we measured it, and we are publishing every number.

This article shows how the test was run, what came out, what random really looks like (it looks less fair than people expect), and how to test any wheel yourself in a few minutes.

How we ran the test

A spinning wheel does two separate jobs. First it picks a winner. Then it plays an animation that lands on that winner. Only the first job decides who wins, so that is what we tested.

On NameWheel, the winner of a normal spin comes from one line of code: the browser's cryptographic random number generator produces a number between 0 and 1, and that number is multiplied by the number of names on the wheel.[1] We ran that exact code, unchanged, one million times on a 12 name wheel, because 12 is the typical wheel on our site: half of all spins on NameWheel are on wheels with 12 names or fewer. Then we ran it again on a coin wheel with 2 options, a big wheel with 50 names, a weighted wheel, and, for comparison, with the ordinary Math.random() generator that many simple spinners use.[2]

What "random" means here. On a fair 12 name wheel, every name should win 1 time in 12, which is 8.333% of the spins. A fair wheel will not hit that number exactly, just as a fair coin rarely lands exactly 500 heads in 1,000 flips. The question is whether the gaps are the size that chance alone produces.

The results, name by name

Here is every one of the 1,000,000 spins, grouped by winner. The names are placeholders; the counts are real.

NameWinsShare of spinsGap from perfect
Ava82,8088.281%0.63% under
Ben83,3338.333%on target
Chloe83,0198.302%0.38% under
Dan83,5448.354%0.25% over
Ella83,5018.350%0.20% over
Finn83,3088.331%0.03% under
Grace83,5018.350%0.20% over
Hugo83,1098.311%0.27% under
Isla83,3378.334%on target
Jack83,3168.332%0.02% under
Kira83,6008.360%0.32% over
Leo83,6248.362%0.35% over

The best name won 83,624 times and the worst won 82,808. That spread of 816 wins out of a million sounds large until you compare it to what chance predicts: for a name expected to win 83,333 times, a typical random swing is about 276 wins either way, so the whole table sits comfortably inside normal luck.

Statisticians check this with a chi square test, which adds up all the gaps and asks how likely a set of gaps that size would be if the wheel were perfectly fair.[3] Our result was 8.19 with 11 degrees of freedom, a p value of 0.6964. Anything above 0.05 is a pass; 0.6964 means gaps like these turn up about 70% of the time with a perfect wheel. In plain words: nothing to see here, which is exactly what you want.

Every wheel we tested

WheelSpinsLargest gapChi square testLongest streak
12 names, NameWheel code1,000,0000.63%Pass (p = 0.6964)6 in a row
2 names, a coin flip1,000,0000.14%Pass (p = 0.1544)22 in a row
50 names, a big class list1,000,0001.78%Pass (p = 0.1181)4 in a row
10 names with weights1,000,0000.48%Pass (p = 0.6012)8 in a row
12 names, Math.random()1,000,0000.57%Pass (p = 0.6847)6 in a row

Every wheel passed. The 50 name wheel shows a bigger largest gap (1.78%) only because each name has fewer wins to average over, about 20,000 instead of 83,000; its chi square result is still a pass. The more spins a name gets, the closer its share sits to perfect.

The weighted wheel did what it was told

Weights let you give one entry more chances, for example a raffle where someone bought three tickets. We gave Alice a weight of 3, Ben a weight of 2 and eight others a weight of 1, a total of 13. Alice should win 3 times in 13 (23.08%), Ben 2 in 13 (15.38%), everyone else 1 in 13 (7.69%).

EntryShould winActually wonGap
Alice (weight 3)23.08%23.119%0.18% over
Ben (weight 2)15.38%15.368%0.10% under
Name 3 (weight 1)7.69%7.718%0.33% over
Name 4 (weight 1)7.69%7.726%0.44% over
Name 5 (weight 1)7.69%7.671%0.27% under
Name 6 (weight 1)7.69%7.703%0.14% over
Name 7 (weight 1)7.69%7.658%0.45% under
Name 8 (weight 1)7.69%7.692%0.01% under
Name 9 (weight 1)7.69%7.655%0.48% under
Name 10 (weight 1)7.69%7.690%0.03% under

So is Math.random() unfair?

No, and this is worth saying honestly: the ordinary Math.random() generator passed the same test just as well. For picking a name, both are fair. The difference is predictability. Math.random() is built for speed, and its future numbers can in principle be worked out from its past ones.[2] The cryptographic generator is designed so that nobody can predict the next number, not even with the previous million in hand.[1] For a classroom that does not matter. For a giveaway with a real prize, it is the reason to use a wheel built on the cryptographic one.

Why random feels rigged: streaks

Most "rigged" complaints are about streaks: the same name twice in a row, or one kid picked three times in a lesson. Here is how often that happened in our million spins on a fair 12 name wheel.

What happenedHow often in 1,000,000 spinsWhat pure chance predicts
Same name twice in a row83,914 times (8.39% of spins)About 1 spin in 12 (8.33%)
A run of 3 or more by one name6,420 timesAbout 6,300 times
A run of 5 or more by one name46 timesAbout 40 times
Longest run by one name6 in a row5 or 6 in a row
Longest run on a coin wheel22 in a rowAbout 20 in a row

A name repeating back to back is not a glitch. On a 12 name wheel it should happen about once every 12 spins, and it did. On a coin wheel, a run of 20 heads in a row is expected somewhere in a million flips, and we got 22. People expect random to look evenly spread, so real randomness, which clumps, feels suspicious. That instinct has a name: the gambler's fallacy, the belief that after a run of one result, a different result is "due". The wheel has no memory. Every spin starts fresh.

If a repeat is a problem in your room, use elimination mode: each winner leaves the wheel until everyone has had a turn. It does not make the wheel more random. It makes it fairer in the way people mean when they say fair. A quarter of all spins on NameWheel already use it.

What real people spin

Our site counts spins without ever recording the names on them. Across the last 7,157 recorded spins, the average wheel held 44 names, but that average is pulled up by a few very large lists: the typical wheel, the median, held just 12. Normal mode ran 73% of spins, elimination 25%, and tally mode most of the rest. Visitors have also run 168,000 test spins of their own in our Fairness Lab.[4]

How to test any wheel yourself

You do not have to trust us, or any other site. You can check a wheel with nothing but patience and a notepad.

When fair is not enough: proof

A fair wheel still cannot prove a single result to someone who was not in the room. A host could spin ten times and post the take they liked, and every one of those spins would be perfectly random. That is why NameWheel has certified draws: the outcome is sealed by our server before the wheel moves, your device adds its own randomness, and the result goes on a public page with a button anyone can press to recompute it.[5] Fairness is about the wheel. Proof is about the moment.

The bottom line

A well built spinning wheel is random, and ours measured that way: one million spins, every name within 0.63% of a perfect share, a clean pass on the standard test, and streaks exactly as common as chance predicts. What makes people doubt a wheel is not bad randomness but good randomness, which clumps. When that matters, use elimination mode for turns, and a certified draw for anything with a prize.

Spin a fair wheel now
Cite this article

"In a test of 1,000,000 spins of NameWheel's winner picking code on a 12 name wheel, every name won between 8.28% and 8.36% of spins against a perfect 8.33%. The largest gap was 0.63%, the chi square test passed (p = 0.6964), and the longest streak was 6 in a row."

NameWheel (2026). Is Spin the Wheel Random? We Tested 1,000,000 Spins. https://namewheel.org/blog/is-spin-the-wheel-random

Method: NameWheel's winner line from engine.js (a cryptographic random number from crypto.getRandomValues, multiplied by the number of names), run 1,000,000 times per wheel in Node.js on September 26, 2026. The spin animation was not part of the test, because it only shows the winner that was already picked.

Sources

  1. MDN Web Docs: Crypto.getRandomValues()
  2. V8 blog: There is Math.random(), and then there is Math.random()
  3. NIST/SEMATECH Engineering Statistics Handbook: Chi square goodness of fit test
  4. NameWheel Fairness Lab: run your own test
  5. TrueSpin protocol specification (certified draws)

Frequently asked questions

Is the spin the wheel random?
A well built wheel is. We ran NameWheel's winner picking code 1,000,000 times on a 12 name wheel: every name won between 8.28% and 8.36% of the spins against a perfect 8.33%, and the standard chi square test passed. The spin animation only shows a winner that was already picked at random.
Can a spinning wheel be rigged?
A website could be built to favor certain names, and you cannot see inside one. That is why it helps to test a wheel yourself, and why NameWheel offers certified draws, where the result is sealed before the spin and anyone can recompute it on a public page.
Why does the same name come up twice in a row?
Because that is what randomness does. On a 12 name wheel the same name wins back to back about once every 12 spins. In our million spin test it happened 8.39% of the time, against 8.33% predicted by pure chance. The wheel has no memory of past spins.
How do I stop the same person being picked again?
Use elimination mode. Each winner is removed from the wheel until everyone has had a turn, so no one is picked twice before the others. It is used in about a quarter of all spins on NameWheel.
Is Math.random() good enough for a name picker?
For fairness of shares, yes: it passed the same million spin test. The difference is predictability. Math.random() is built for speed, while the cryptographic generator NameWheel uses is designed so nobody can predict the next number, which matters for giveaways with real prizes.
Do weighted entries really work?
Yes. We gave one entry a weight of 3, one a weight of 2 and eight others a weight of 1. Over a million spins each entry won within 0.48% of its intended share, so an entry with weight 3 wins three times as often as one with weight 1.
How can I test a wheel myself?
Put 4 names on it, spin 200 times and tally the winners. Each should land near 50, and anything from about 36 to 64 is normal chance. The NameWheel Fairness Lab can run thousands of spins in seconds and show the gaps for you.

More on fair picks