The Fairness Lab.
Run the wheel against itself.

Every NameWheel spin is decided by crypto.getRandomValues(), the random source browsers reserve for security work. This lab runs that exact function against a wheel of your choosing, live, in front of you. Paste your own names if you like. If bias existed, this page is where it would surface.

Visitors have run test spins in this lab so far.
Leave empty to test a standard 8-name wheel. Names stay in your browser; only anonymous totals are counted.
0
spins completed
00:00.0instrument idle · awaiting run
Distance from a perfectly even split

What this test does differently

Most randomness demos replay canned data. This lab draws fresh numbers on your machine, from your browser's own cryptographic generator, against the names you chose. Three instruments watch the run. The distribution bars should stay in a tight pack and never crown a permanent leader. The deviation gauge should drift left as the spin count climbs, because genuine randomness converges toward an even split without ever landing exactly on it. And the streak counter catches the thing human intuition gets wrong: real chance produces repeat winners in bursts, and the verdict card shows you how long a streak mathematics actually expects.

The counter above the lab is real and grows with every completed run, from every visitor, forever. NameWheel does not collect the names you test; the only thing recorded is that a run of a given size finished, and how close to even it landed.

Why we built a lab instead of a claim

Teachers get accused of favorites. Streamers get accused of rigging. A privacy policy paragraph convinces nobody mid-argument, but an experiment they can run themselves usually ends the discussion. Send doubters here, tell them to paste the exact names from the contested wheel, and let them press the button as many times as they like. Every run draws new numbers; the leaders shuffle; the gauge settles. That is what fair looks like.

One disclosure, because honesty is the product: PRO accounts can enable weighted entries, where Alice:3 visibly triples a slice. That is announced odds, drawn on the wheel for everyone to see, and this lab always runs with equal weights, the way the free wheel always behaves.

The method, in the open

The source

Every draw runs on the TrueSpin engine, pulling from crypto.getRandomValues(), the generator browsers reserve for their most serious work. The weaker Math.random() appears nowhere in the selection path, here or on the live wheel.

The mapping

Each 32-bit value maps to a segment by simple division, so a wheel of eight names gives every name exactly one eighth of the space of possible outcomes. No segment is wider than another in the math, whatever the artwork shows.

The check

After the last draw the lab computes a chi-square statistic, the same test statisticians use to compare observed counts against expected ones. Fair randomness lands inside a known band; loaded dice do not.

How to read your result

The spread is the gap between the luckiest and unluckiest name, measured against a perfect share. At five hundred spins a spread near ten percent is completely ordinary. At fifty thousand it shrinks toward two or three percent, and that shrinking is the fingerprint of honest chance. A rigged wheel does the opposite: its favorite pulls further ahead the longer you run it.

The streak is where human intuition misleads. People see the same name win three times running and reach for the word fixed. With eight names and five thousand spins, mathematics expects streaks around four or five, and across many runs the occasional six is unremarkable. Repeat winners in clusters are what genuine randomness looks like; a perfectly rotating winner would itself be evidence of tampering.

The chi-square figure condenses the whole table into one number. For a wheel of n names it should wander around n minus one. Values far above that suggest bias; values suspiciously close to zero suggest the results were smoothed by hand. The lab prints the raw figure so you can judge it yourself, run after run.

What perfect fairness actually looks like

Wheel size Expected wins at 500 At 5,000 At 50,000
4 names125 each1,250 each12,500 each
8 names62 or 63 each625 each6,250 each
12 names41 or 42 each416 or 417 each4,166 or so each

No real run lands exactly on those figures, and that is the point. Chance overshoots and undershoots in small, shrinking amounts. If a run of yours ever produced the table above to the digit, that run would deserve more suspicion than any streak.

Settling an argument with it

The lab exists for one social moment: someone, half joking or not, says the wheel is fixed. Send them this page. Tell them to paste the exact names from the contested spin, choose Deep, and press the button themselves, on their own device, where you could not possibly have touched anything. The draws happen in their browser, from their machine's own entropy. By the time the gauge settles they are usually arguing about something else, and the running total at the top of this page grows by fifty thousand.

Spin the real wheel