What the Decision Wheel Spinner does
Spin the wheel picks one of your choices at random: type names, foods, prizes or "yes" and "no", one per line, and press Spin. The wheel turns and stops on the winner, keeps a list of winners, can take each winner off the wheel for a raffle or turn-taking, and lets you give some choices a bigger slice.
The pick is fair and checkable. Your browser's secure random generator chooses the winner the moment you press Spin, using rejection sampling so that no choice is even slightly favoured, and the animation is then planned to land on that winner. The list stays in your browser; a share link carries the wheel itself, never anything sent to a server.
How to use it
- Type your choices in the box, one per line, or load an example such as the lunch picker, yes-or-no, or a class list.
- To make a choice more likely, add
*2,*3(orx2) after it. Its slice grows to match, and the chance table shows each choice's exact probability. - Press Spin, click the wheel, or tab to it and press Enter or Space. The winner appears in large type and is added to the list of winners.
- For a raffle or to pick the next speaker, tick "Remove the winner after each spin". "Put the winners back" restores everyone.
- Use "Copy share link" to send the same wheel to someone else, or Download CSV for the choices, their chances and the winners.
Reading the results
Each choice's chance is its weight divided by the total weight. Eight equal choices are 12.5% each; in the prize example a sticker with weight 10 out of 22 has a 45.5% chance and the gift card with weight 1 has 4.5%.
Spins are independent. A choice that won last time is exactly as likely to win again unless you remove it - a run of the same result is normal randomness, not a fault.
The slice sizes are drawn from the same weights the pick uses, so the wheel you see is an accurate picture of the odds. Where the wheel stops inside the winning slice is cosmetic; it never moves the result to a neighbour.
Worked example: a prize draw with weighted chances
The wheel holds Sticker *10, Pen *6, Mug *3, T-shirt *2 and Gift card *1 - 22 tickets in all.
Pressing Spin draws a ticket number from 0 to 21 uniformly. Tickets 0-9 are the sticker (10/22 = 45.5%), 10-15 the pen (27.3%), 16-18 the mug (13.6%), 19-20 the T-shirt (9.1%) and 21 the gift card (4.5%).
Behind that draw is a 32-bit random number. 2^32 is not a multiple of 22, so the top 4,294,967,296 - floor(2^32 / 22) x 22 = 4 values are thrown away and redrawn; every remaining value maps to each ticket exactly 195,225,786 times.
Why "random" needs rejection sampling
Computers produce random whole numbers in a fixed range, here 0 to 4,294,967,295. The obvious way to turn one into a choice among n is the remainder after dividing by n, but unless n divides the range exactly, the first few choices get one extra chance each. With 2^32 values the bias is tiny; with smaller generators it is large enough to see. Rejection sampling discards the incomplete last block of values and draws again, which makes every choice exactly equally likely. The tests behind this page prove it by feeding every possible value through the method on small ranges.
The generator itself is crypto.getRandomValues, the browser's cryptographically secure source. Many simple wheels use Math.random, which is fine for games but is not designed to be unpredictable. If a browser offers no secure source, this page says so rather than quietly using a weaker one.
Decided before it spins
The animation is theatre. The winner is fixed the instant you press Spin, and the page then works out a rotation of five to seven full turns that ends inside the winner's slice. Speed, friction and where you click play no part. With reduced motion switched on in your device settings, the wheel jumps straight to the result.
Limitations: what the result does not prove
- It is fair for everyday decisions, games and classroom picks, but it is not a certified draw. Prize draws with legal requirements may need an independent, audited process and a record you can present.
- A share link contains the list and settings in the address after the #. Anyone with the link can see the choices, so avoid putting private information on a shared wheel.
- Nothing is saved unless you copy it. Closing or reloading the tab clears the winners list.
- Very long lists make slices too thin to label; above about 90 equal choices some labels are hidden, though every choice is still on the wheel and in the chance table.
Privacy: where your data goes
Everything you paste, type or drop is processed in this browser tab. It is not uploaded, logged, stored or sent to analytics. Session recording and tag-manager scripts are switched off on this page.
Standards and sources
- W3C Web Cryptography API - getRandomValues()
- MDN - Crypto.getRandomValues()
- NIST SP 800-90A Rev. 1 - Recommendation for random number generation (Appendix A.5.1, discarding to avoid bias)
Frequently asked questions
Is the spin the wheel result truly random?
It uses your browser's cryptographically secure random generator, and rejection sampling removes the small bias the usual remainder method leaves, so every ticket is exactly equally likely. The winner is chosen before the animation starts; the animation only shows it.
How do I make one option more likely to win?
Add a weight after it, such as Pizza *3 or Pizza x3. That gives it three tickets instead of one, a slice three times as large, and three times the chance of an unweighted choice. The chance table shows the exact percentage for each line.
Can I remove names after they are picked?
Yes. Tick "Remove the winner after each spin" and each winner is taken off the list once it has been shown, which suits raffles and choosing who goes next. "Put the winners back" restores everyone at once.
Can I spin a yes or no wheel?
Yes - load the yes-or-no example or type Yes and No on two lines. Each has exactly a 50% chance. Add *2 to one if you want a two-to-one wheel instead.
How do I share my wheel with someone?
Press "Copy share link". The link rebuilds the same choices, weights and title when opened. Everything is stored after the # in the address, which browsers never send to a server, so a2z.tools does not receive your list.
Why did the same name win twice in a row?
Because each spin is independent - a fair wheel has no memory. With ten equal names the chance of the same one winning two spins running is 1 in 10. If you need each name to win only once, switch on remove-the-winner mode.
How many names can I put on the wheel?
Up to 200 lines. Labels shrink as the wheel fills and very thin slices drop their label, but every entry stays on the wheel and in the chance table, and the pick treats them all the same way.
Last reviewed by the A2Z.Tools team against the sources listed above.