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]
"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.
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.
Here is every one of the 1,000,000 spins, grouped by winner. The names are placeholders; the counts are real.
| Name | Wins | Share of spins | Gap from perfect |
|---|---|---|---|
| Ava | 82,808 | 8.281% | 0.63% under |
| Ben | 83,333 | 8.333% | on target |
| Chloe | 83,019 | 8.302% | 0.38% under |
| Dan | 83,544 | 8.354% | 0.25% over |
| Ella | 83,501 | 8.350% | 0.20% over |
| Finn | 83,308 | 8.331% | 0.03% under |
| Grace | 83,501 | 8.350% | 0.20% over |
| Hugo | 83,109 | 8.311% | 0.27% under |
| Isla | 83,337 | 8.334% | on target |
| Jack | 83,316 | 8.332% | 0.02% under |
| Kira | 83,600 | 8.360% | 0.32% over |
| Leo | 83,624 | 8.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.
| Wheel | Spins | Largest gap | Chi square test | Longest streak |
|---|---|---|---|---|
| 12 names, NameWheel code | 1,000,000 | 0.63% | Pass (p = 0.6964) | 6 in a row |
| 2 names, a coin flip | 1,000,000 | 0.14% | Pass (p = 0.1544) | 22 in a row |
| 50 names, a big class list | 1,000,000 | 1.78% | Pass (p = 0.1181) | 4 in a row |
| 10 names with weights | 1,000,000 | 0.48% | Pass (p = 0.6012) | 8 in a row |
| 12 names, Math.random() | 1,000,000 | 0.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.
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%).
| Entry | Should win | Actually won | Gap |
|---|---|---|---|
| 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 |
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.
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 happened | How often in 1,000,000 spins | What pure chance predicts |
|---|---|---|
| Same name twice in a row | 83,914 times (8.39% of spins) | About 1 spin in 12 (8.33%) |
| A run of 3 or more by one name | 6,420 times | About 6,300 times |
| A run of 5 or more by one name | 46 times | About 40 times |
| Longest run by one name | 6 in a row | 5 or 6 in a row |
| Longest run on a coin wheel | 22 in a row | About 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.
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]
You do not have to trust us, or any other site. You can check a wheel with nothing but patience and a notepad.
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.
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"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.