Advertisement

Is the spin wheel really random? How the winner is chosen

Every spin picks its winner from a cryptographic random source before the wheel even moves. Here is what that means, why the odds stay equal, and how you can test it.

How is the winner chosen?

The winner is the entry whose segment a cryptographically random number lands in. The wheel asks crypto.getRandomValues for that number, maps it to a segment, then plays an animation that stops there. The animation shows the decision; it does not make it.

Concretely: the wheel takes 32 random bits from crypto.getRandomValues and turns them into an index from 0 to the number of entries minus one. If the raw value would make some indexes slightly more likely, the wheel discards it and draws again; this is rejection sampling, and it removes the modulo bias a naive generator has. Only then does the spin animation start, ending with the pointer inside the chosen segment. Nothing runs on a server, so there is no place for a result to be changed in transit.

Do all entries really have equal odds?

Yes, unless you turn weights on. Every enabled entry gets a segment of the same angle, and the random index treats each one the same, so a wheel with ten names gives each name a one in ten chance on every spin.

Disabled entries are not drawn at all, which is how you let someone sit out a round without deleting them. The weighted mode in advanced settings changes this on purpose: a weight of 2 gives that entry a segment twice as wide and twice the chance, and the wheel draws the segments to match, so the odds are always visible. Spin history does not matter either: each spin is independent, and a name that just won is exactly as likely to win again.

How can I verify it myself?

Spin many times and compare the results tab with what equal odds predict. Three steps: set up a small wheel, spin it often, count the winners.

  1. Make a two-entry wheel

    Put A and B on the main wheel, nothing else.

  2. Spin 50 or 100 times

    Keep after win on keep so both entries stay. Every result lands in the results tab.

  3. Count

    Each entry should be near half; 40 to 60 out of 100 is normal, a steady 80/20 is not. Copy the results to a spreadsheet if you want to go further.

These are the questions people ask before they trust a wheel with something that matters.

Fairness questions

Can the spin wheel be rigged?

Not from this site. The winner comes from the browser's random generator, no server is involved, and the code does not read your entries to favour one. The only way to tilt the odds is the weights setting, and a weighted wheel shows its uneven segments.

What is the difference between Math.random and crypto.getRandomValues?

Math.random is a fast pseudo-random generator meant for games and animation, with no guarantee about predictability. crypto.getRandomValues is the browser's cryptographically secure generator, seeded by the operating system. The wheel uses the second for every draw.

Does spin duration or sound change the result?

No. The winner is fixed the moment you spin; duration, sound, confetti and label visibility only change how the result is presented.

Why does the same name win twice in a row sometimes?

Because each spin is independent. With ten names, back to back wins happen about one time in ten, which is exactly what a fair wheel should do. Use remove after win if you want no repeats.

Built to be trusted

SpinWheelzy runs in your browser. Entries stay on your device unless you sign in and save, connections use HTTPS, and every winner comes from crypto.getRandomValues with rejection sampling. Read the privacy policy and terms for the details.

Last updated 23 August 2026