Is the wheel really random?

Yes. We get asked this so often that we built a whole page to show it. Below you can take your own homepage wheel, spin it a million times, and watch where the results land.

0

spins so far

·

biggest gap from fair

Press start and watch what a fair wheel actually looks like.

Why a fair wheel can look rigged

Spin any fair wheel twenty times and it will look broken. Below is our eight option wheel, spun for real: after twenty spins the luckiest option had come up 4 times and the unluckiest only 1.

Nothing was wrong with it. There simply had not been enough spins yet. Keep going and the same wheel, running the same code, evens out on its own.

20 spins

120% apart

500 spins

40% apart

20,000 spins

8.4% apart

1,000,000 spins

0.5% apart

Each bar is one option and the dashed line is an even split. A few spins bounce around that line wildly. A lot of spins hug it.

What we tested

Last run 2026-09-08

Five tests, millions of spins each, run against the same code your wheel uses. Each one asks about a different way a wheel could be unfair.

12 equal options Pass

Does every option win a twelfth of the time?

Every option landed within 0.18% of its share

Yes or no Pass

With only two options, does one side creep ahead?

50.0% / 50.0% over 10 million spins

Weighted options Pass

Weight them 1, 2, 3 and 4. Do they win in that ratio?

10.0% / 20.0% / 30.0% / 40.0% over 10 million spins

Where it stops Pass

Does the pointer favour one part of the winning slice?

Every option landed within 0.28% of its share

No memory Pass

Does the last winner tell you anything about the next?

No pattern found in 5 million spins

A test like this can only ever fail, never prove. Passing means we went looking for five specific kinds of unfairness and did not find them.

How the winner is picked

The moment you press spin, your browser produces a random number using the same system that protects passwords and payments. That number picks the winner.

It happens before the wheel starts moving. What you watch is the wheel travelling to a result that was already decided, which is why how hard you click, where you click and how long you hold change nothing.

const randomValues = new Uint32Array(2)
crypto.getRandomValues(randomValues)

const prizeNumber = selectWeightedIndex(
  props.segments,
  randomValues[0] / 0xFFFFFFFF
)

In full: every spin draws two 32-bit numbers from crypto.getRandomValues. The first walks the cumulative weights to pick the winning option. The second places the pointer between 10% and 90% of the way across the winning slice, so it never stops exactly on an edge.

Now go spin one.

Free, no account, and you just watched it prove itself.

Create your wheel