Is a Spin Wheel Really Random?

It is a fair question. You watch a wheel slow down and stop, and it looks like physics. On a website, it is code. Here is what actually decides the result, and how you can check it.

A real wheel and an online wheel work differently

A physical prize wheel is random because of things nobody controls exactly: how hard it was pushed, friction in the axle, where the pointer catches. It can still be biased. A worn peg or a heavy side can make some slices come up more than others.

An online wheel has no axle and no friction. It only has a number from a random number generator. The question of fairness comes down to two things: how good that number is, and how the site turns it into a result.

How Wheelspinly picks the winner

When you press Spin, the page asks your browser for a random value from crypto.getRandomValues. This is the random source browsers provide for security work, such as creating encryption keys. It is built to be unpredictable, and it is a step up from the older Math.random function that many simple scripts use.

That random value is mapped to one of your entries, with every entry given an equal share. If the wheel has 8 entries, each one has a 1 in 8 chance. The winner is decided at this point, before the wheel has moved at all.

Only then does the animation start. The wheel is told which slice to stop on and plays a spin that ends there. The number of turns, the easing, and the little wobble at the end are all decoration.

Why the animation cannot be gamed

Because the result is chosen first, nothing you do during the spin can change it. Clicking at a particular moment, spinning on a faster phone, or resizing the window all have no effect. This is the main reason to pick the result before the animation rather than calculating it from where a simulated wheel happens to stop.

It also means the spin length is not a clue. A long spin is not more random than a short one. Both are just showing a result that already exists.

Streaks are normal

People often doubt a wheel because the same entry wins twice in a row. That feels suspicious, but it is expected. With 4 entries, the chance that the next spin repeats the last winner is 1 in 4. Over a dozen spins, a repeat or two is likely.

Random results tend to look clumpy in the short run. Humans expect randomness to look evenly spread out, so a truly random sequence can feel less random than a carefully alternating one. Over many spins, each entry's share settles close to its expected share.

How to test a wheel yourself

You do not have to take anyone's word for it. Try a simple test. Put two entries on a wheel, or use the yes or no wheel, and spin 50 times. Count the results from the history. You will rarely get exactly 25 each, but you should land somewhere near it, often between about 18 and 32.

The coin flip tool is even quicker for this, since it can flip up to 100 coins at once and show the counts. Do it a few times and you will see the totals bounce around the halfway mark without leaning one way.

Giving one entry better odds

Sometimes you want an uneven wheel, such as giving a regular customer two raffle tickets. Wheelspinly does not have weight settings, but there is a simple way to do it: add the entry more than once. Each line is its own slice, so a name on three lines has three times the chance of a name on one line. Anyone looking at the wheel can see the extra slices, which keeps it honest.

When fairness matters most

For a casual pick, like the what to eat wheel, nobody minds much. For a giveaway or a classroom draw, people want proof. Show the entry list before you spin, spin where people can watch, and keep the results history. The randomness is handled by the browser. Being open about the list and the draw is up to you.

Frequently asked questions

Can the person spinning control the result?

No. On Wheelspinly the result is chosen from crypto.getRandomValues the moment Spin is pressed, before the animation. Click timing, device speed, and spin length have no influence on which entry wins.

Why did the same name win three times in a row?

Each spin is independent, so repeats happen. With five entries, three of the same in a row comes up about once in every 25 three-spin runs. If you need everyone to get a turn, use remove-winner.

Is crypto.getRandomValues better than Math.random?

For this purpose, yes. Math.random is fine for many tasks but is not designed to be unpredictable. crypto.getRandomValues is the browser's source for security-grade random numbers, so it is harder to predict and better suited to fair draws.

Keep reading

Spin a wheel now