Blog

How Random Is a Spin Wheel, Really? The Algorithm Explained

When a wheel picks your name, it is reasonable to wonder what just happened. Was it really random? Could it have been nudged? Does spinning longer change anything? Here is what goes on under the animation.

The result is chosen before the wheel moves

It feels like the physics of the spin decide where you land. In an online wheel, it is the other way around. The moment you press spin:

  1. The tool counts the entries — say there are 12.
  2. It asks the browser for a random number and maps it to one of the 12 segments.
  3. That segment is now the winner.
  4. The animation calculates a rotation that ends with the winning segment under the pointer, adds a few full turns for effect, and plays it out with a deceleration curve.

The spin you watch is a presentation of a decision that has already been made. This is why spin length, drag speed and “how hard you flick” make no difference to the outcome — those only exist visually.

Where the randomness comes from

The random number itself comes from your browser’s built-in generator, reached in JavaScript through Math.random(). Modern engines implement this with a well-tested algorithm (the commonly used one is called xoshiro128++ or a close relative), seeded from internal state when the page loads.

Two properties matter for a wheel:

  • Uniformity. Over many calls, the values are spread evenly across the range. Mapped onto segments, that means each segment is equally likely.
  • Unpredictability in practice. The seed is derived from internal engine state that a web page cannot read or set. You cannot sit at the page and compute what the next value will be.

That is enough for choosing a student, a giveaway winner, a restaurant or a dare.

What “equal chance” means here

Every entry becomes one segment, and the picker chooses uniformly among segments — not among distinct names. So:

  • 12 different names → each has a 1-in-12 chance.
  • 11 names, but one is listed twice → the wheel has 12 segments, and the repeated name has 2-in-12, or 1-in-6. Everyone else has 1-in-12.

This is a feature. Repeating an entry is how you weight a wheel: two “Yes” segments and one “No” makes yes roughly twice as likely. Bonus entries in a giveaway work the same way — list the person once per entry they earned.

Removing the winner after a spin also changes the odds correctly: after a 12-name wheel picks one and drops it, the next spin is a genuine 1-in-11.

Independence between spins

Each spin asks for a fresh random value. The wheel has no memory: a name that just won is exactly as likely to win the next spin as any other (unless you removed it). Streaks happen — with 6 entries, the same one coming up twice in a row is a 1-in-6 event, which is common. That is normal randomness, not a bug.

The honest limits

An online wheel is fair for everyday use, but it is worth being clear about what it is not:

  • It is not cryptographically secure. Math.random() is not designed to resist a determined attacker with control over the environment. For security-sensitive randomness (keys, tokens, tamper-proof draws) you need a cryptographic generator, and often an audited system around it.
  • It is not a certified draw. Regulated lotteries and large official prize draws have legal requirements — audited RNGs, record-keeping, sometimes independent supervision. A browser wheel does not meet those, and is not meant to.
  • “Random” is not “balanced”. Random teams can be lopsided on skill. Random question order can hit one topic three times. If you need balance, impose it after the draw.

How to make a wheel look as fair as it is

Most disputes about a wheel are about perception, not mathematics. To close that gap:

  • Show the full list before spinning, and scroll it so everyone sees every entry.
  • Spin live or in a single recorded take.
  • Use the Results history as a record.
  • Explain, once, that the result is picked by the browser’s RNG the instant you spin and cannot be set from the page.

Do that and the wheel is both fair and seen to be fair — which, for a giveaway or a classroom, is the whole point.

Frequently asked questions

Is the spinning animation deciding the result?

No. The winner is chosen the instant you press spin, using the browser's random number generator. The animation is then aimed at that segment. Spin length and speed do not change the odds.

Can someone predict or rig the result?

Not in normal use. The value comes from the browser engine's PRNG, seeded from internal state you cannot see or set from the page. It is not cryptographically secure, but it is more than random enough for names, games and giveaways.

Does adding the same name twice really double its chance?

Yes. The picker chooses uniformly among segments, so two identical segments give that option two shares out of the total.

Try it now: open the Random Pick Wheel wheel and put your own list in.