Tool · Fun & random
Wheel Spinner
What’s for dinner, who goes first, which film tonight? Type in your entries, spin the wheel and let chance decide – with the same odds for every slice.
What people spin a wheel for
- Decisions where any answer is fine: ordering food, choosing a film, picking a day trip. The wheel saves you the discussion.
- Turns and tasks: who starts the game, who presents first in the meeting? Tick “Remove the winner” and you draw everyone in turn until the wheel is empty.
- Classrooms and groups: who answers next, which group gets which topic. Prepare the share link with your entries beforehand and open it in class.
- Small giveaways among friends – for prize draws with real prizes see limits.
For plain lists of names – picking several people, handing out tasks or making teams – the random name picker is the better fit.
Where the randomness comes from
The key point first: the result is fixed before the wheel moves. The spin only shows it. How long it turns, how it slows down or where you click makes no difference to which slice wins.
- Get a random number. Your browser supplies a random number between 0 and
4,294,967,295 (2³² − 1) through the Web Crypto API (
crypto.getRandomValues). That source is meant for encryption and is therefore unpredictable – unlike the simplerMath.randomthat browsers use for games and animations. - Pick the slice without bias. With n entries the tool needs a number from 0 to n − 1. The obvious approach, “divide the random number by n and take the remainder”, favours the first slices ever so slightly whenever 2³² is not exactly divisible by n. So numbers above the largest multiple of n are thrown away and drawn again. After that every slice has exactly the same chance of 1 in n.
- Choose where it stops. A second random number decides where within the slice the pointer comes to rest – never right at the edge, so nobody has to argue about a line.
- Spin. The wheel makes five to seven full turns and then slows down to stop at exactly that point.
Example: what happens in one spin
The wheel holds the four entries from the form above: Pizza, Sushi, Pasta and Salad. With four slices each one is 360° ÷ 4 = 90° wide. On the wheel at rest, Pizza covers 0° to 90° (counted clockwise from the top), Sushi 90° to 180°, Pasta 180° to 270° and Salad 270° to 360°.
- The random number gives slice 2 (counting from 0) – that is Pasta. The chance of that was 1 ÷ 4 = 25 %.
- The stopping point falls exactly in the middle of the slice: 180° + 45° = 225°.
- To bring that point to the pointer at the top, the wheel has to turn 360° − 225° = 135°. With five full turns before that, the wheel turns 5 · 360° + 135° = 1935°.
The odds on the wheel
Every slice is the same width and has the same chance. A few consequences that are easy to miss:
- Weighting by repeating: if “Pizza” appears twice and the other three once each, there are five slices, and Pizza wins with 2 ÷ 5 = 40 %, every other entry with 20 %.
- The wheel has no memory. If it just landed on Pasta, Pasta is exactly as likely on the next spin as before: 25 % with four slices. The feeling that something is “due” is wrong with chance – the well-known gambler’s fallacy.
- Everyone gets a turn – only with “remove the winner”. If you want each of four entries drawn exactly once in four spins, tick the box. Without it, the chance that four spins give four different results is only 4! ÷ 4⁴ = 24 ÷ 256 ≈ 9.4 %.
Limits of this tool
- Prize draws with real prizes: a public giveaway needs terms and conditions and a procedure you can document afterwards. A screenshot of a wheel is poor evidence – the result can be re-spun as often as you like.
- Gambling for money is not what this wheel is for.
- At most 200 entries of up to 80 characters each. With many entries the labels on the wheel get small and shortened; the result below always appears in full.
- If you have “reduce motion” switched on in your operating system, you get the result straight away, without the spin.
Privacy: the wheel runs entirely in your browser; your entries are not sent to
xmoo.app or anyone else. The share link contains the entries themselves – whoever receives it can
see them. They sit after the # in the address; browsers do not send that part to the
server, and the tool removes it from the address bar after opening.
Sources
crypto.getRandomValues, randomness for cryptographic use: W3C, Web Cryptography API- Rejection instead of remainder (modulo bias): Daniel Lemire, Fast Random Integer Generation in an Interval, ACM TOMACS 29 (2019)
- Shuffling the entries: Richard Durstenfeld, Algorithm 235: Random permutation, Communications of the ACM 7 (1964)
Page last updated: 30 October 2026