Every spin on FairWheelPick is decided by your browser’s cryptographically secure random number generator before the wheel starts moving. This page explains exactly how that works, what it means for your results, and how you can test it yourself.
The short version
- The winner is drawn first, at random, and the animation then lands on it.
- The random numbers come from the Web Crypto API (
crypto.getRandomValues) built into your browser, not fromMath.random(). - Every entry has the same chance unless you give it extra chances with
*2,*3and so on, and the wheel can show those percentages to everyone. - The draw happens on your own device. Your list is not sent to our server, and we have no way to choose or change a result.
- You can run up to 100,000 test spins in the Fairness tab and check the results yourself.
What happens when you press Spin
- The wheel reads your list. Each line is one entry. A line ending in
*3counts as three chances. - It draws the winner. It takes a random number between 0 and the total number of chances, built from 53 random bits from
crypto.getRandomValues, and finds the entry that number falls into. - It picks a landing spot. It chooses a random point inside the winner’s segment, away from the edges, so the pointer never stops on a dividing line.
- It animates the spin. The wheel turns for the spin time you chose and slows down until the pointer reaches that spot. The speed, the number of turns and the spin time are only the show: they cannot change who wins.
- It records the result. The winner goes into the Results tab with the time, and is marked as weighted if any entry had extra chances.
The Shuffle button uses the same secure generator (a Fisher–Yates shuffle), so a shuffled list is in a genuinely random order.
Why crypto.getRandomValues and not Math.random()
Math.random() is fine for games, but browsers make no promise that its numbers are unpredictable. crypto.getRandomValues is designed for security work, such as creating encryption keys, and browsers fill it from a cryptographically strong source, usually provided by the operating system.
To be honest about it: for picking one name from a class list, both would look random to a person. We use the stronger one because a fairness tool should not cut corners, and because it removes any argument about whether results could be predicted.
Why the same name can come up twice
Each spin is independent: the wheel does not remember earlier results. With 10 entries, there is a 10% chance that the next spin lands on the same entry as the last one. Over 5 spins of those 10 entries, there is about a 70% chance that at least one entry comes up more than once.
That is how fair draws behave, not a sign of a problem. If you want everyone picked once before anyone repeats, turn on Remove winner after each spin.
Weighted wheels are never hidden
You can give an entry extra chances, for example when someone holds two raffle tickets. When you do, it shows in three places:
- Turn on Show each entry’s chance and every entry’s exact percentage appears under the list.
- The result window says Weighted wheel before the winner’s chance.
- The Results tab marks the result as weighted.
There is no setting that makes a particular entry win, and no hidden mode.
Test it yourself
Open the Fairness tab next to Entries and Results, choose 1,000, 10,000 or 100,000 spins, and press Run test. The wheel runs those spins on your current list with exactly the same draw function it uses for real spins. Test spins are not added to your results.
You get a table with each entry’s expected share, the share it actually got, and how many times it was picked, plus a chi-square test, a standard statistical check of whether the spread looks like a fair random draw:
- p of 0.01 or more: the spread is normal for a fair draw.
- p below 0.01: the spread is unusual. Even a perfect draw does this about once in every 100 runs, so run the test again. If it kept happening, that would point to a real problem.
The more spins you run, the closer each share gets to its expected value. With 100,000 spins, each entry is usually within a few tenths of a percentage point.
What we cannot promise
- What is on your list is up to you. A name pasted twice has twice the chance, so check for duplicates before a draw that matters.
- The draw relies on your browser. All current major browsers support the Web Crypto API. We cannot vouch for very old or modified browsers.
- A share link carries your list, not a result. Anyone who opens it and spins gets their own new random result.
- Some prize draws have legal rules. Competitions and raffles may need specific terms, an independent draw or a witness, depending on where you are. Check the rules that apply to you.
Related guides
- Can a spinner wheel be rigged? How to prove your draw was fair
- How to pick a giveaway winner fairly
- Check a draw: confirm an entry list matches the fingerprint published before the spin
- Changelog: every change to the wheel, with dates
- Spin wheel with percentages: set exact odds per slice and test them
- Wheel probability explained: why repeats and streaks are normal
