The short version
- Every slice on the wheel has exactly the same chance of being picked.
- The result is chosen the instant you press Spin, before the wheel moves.
- The animation is steered to stop on that result. It never decides anything.
- Everything happens in your browser. No server is involved.
Step by step
- Your list becomes slices. Each non-blank line is one slice. Repeated lines are separate slices, which is how you make an option more likely on purpose.
- A random number is drawn. We ask your browser for a random number using
crypto.getRandomValues, the cryptographically secure generator built into every modern browser. - The number becomes a slice, without bias. Turning a large random number into “one of 7 slices” with simple division would favor some slices very slightly. We use rejection sampling instead: the rare numbers that would cause that bias are thrown away and a new one is drawn, so every slice is exactly equally likely.
- The wheel is aimed at the result. We calculate a stopping angle that puts the chosen slice under the pointer, landing somewhere inside the middle 70% of the slice so it never looks like a borderline call. The wheel then spins forward several full turns and slows to that angle.
- The result is revealed. The winning slice is highlighted and the result pops up in words over the wheel, and screen readers announce it.
Things that don’t affect the result
- Spin length. Quick, Normal, and Long only change how long the animation takes.
- Timing. When you press Spin, or how you click, makes no difference.
- Previous spins. Each spin is independent. The same slice can win twice in a row.
- Order and color. Shuffling, sorting, slice color, or the wheel’s color palette doesn’t change any slice’s chance.
What we don’t claim
Being clear about the limits matters as much as the method:
- WheelSpinny hasn’t been independently audited or certified. It’s suitable for classrooms, games, everyday decisions, and informal draws, not for regulated lotteries, gambling, or drawings that legally require a certified process.
- The randomness comes from your browser and device. We rely on them, as every web page that uses secure random numbers does.
- In the unlikely case that a browser has no secure generator, the wheel falls back to the browser’s ordinary random function, which is fine for games but not cryptographically secure. Every current major browser has the secure generator.
Try it yourself
Put “Heads” and “Tails” on the wheel and spin 40 times, keeping the winners on. The Results tab shows every outcome. You’ll usually see something close to an even split, but rarely exactly 20 and 20, and probably a streak or two. That unevenness is what genuine randomness looks like over a small number of spins.