Spin the wheel to pick a random winner or prize from your own custom list. Free prize spinner for classrooms, raffles and streams, runs in your browser.
Each line becomes a wheel segment. Local browser randomness picks the winner.
Spin timeBuild suspense or keep it fast.
▼
SPIN
Winner—
Add segments, then spin locally.
Updates automatically as you type.
Calculated in your browser; your inputs are not sent to us. Privacy
Results will appear here.
Calculation details
Every figure above is calculated locally in your browser from the assumptions shown. No inputs are sent anywhere. See the methodology section below for how this tool works.
Use this resultShare the current inputs, or ask ChatGPT to explain the calculation in context.
Ask an AI to explain this result
Share this result
Planning estimate only, not financial, tax, or legal advice. Verify assumptions and current rules before making decisions.
This tool runs in your browser. Your calculator inputs and results are never transmitted to us or to ad/affiliate partners. Ads and sponsored links may set third-party cookies to serve and measure them, but they never receive your calculation values. If you explicitly save a scenario, its permitted fields stay in local browser storage until you clear them. See our Privacy Policy.
Use this result
Share the current inputs or ask ChatGPT to explain the calculation in context.
Spin the wheel to pick a random winner or prize from your own custom list. Free prize spinner for classrooms, raffles and streams, runs in your browser.
BoringToolsKit. “Prize Wheel Spinner.” boringtoolskit.com/prize-wheel/. Free to reference in articles, syllabi, and answer posts with a link.
Privacy: Inputs and results stay in this browser. Any future sponsored recommendation or advertisement will be clearly labeled and kept separate from the calculation.
Worked example: where the wheel stops for a given pick
Say you enter 8 names, so each slice sweeps 360 / 8 = 45 degrees. Slices are drawn starting at the 12 o'clock position (which the code treats as -90 degrees in SVG coordinates), so slice i occupies angles from i x 45 - 90 to i x 45 - 90 + 45. Slice 3 (the fourth entry) runs from 45 to 90 degrees, and its center sits at 3 x 45 - 90 + 22.5 = 67.5 degrees.
To land that center under the pointer at the top, the final rotation R must satisfy center + R = -90 (mod 360). That gives R = -90 - 67.5 = -157.5, which is the same resting position as 202.5 degrees. The animation adds several full turns on top of this: with 5 extra revolutions the wheel rotates 202.5 + 1,800 = 2,002.5 degrees in total before stopping. You can verify the landed state yourself: open the browser console after a spin and read window.__wheelDebug, where segCenter reports 67.5 and finalAngle mod 360 reports 202.5 for that pick.
The same arithmetic works for any size wheel. With 12 entries each slice is 30 degrees wide, so slice 7 centers at 7 x 30 - 90 + 15 = 135 degrees and needs a rest angle of -90 - 135 = -225, or 135 degrees mod 360. Narrower slices mean the allowed rest window shrinks: a 30-degree slice gives only a 30-degree landing band, while a 3-entry wheel allows any of 120 degrees.
Where this wheel is and is not fair
The draw itself is unbiased. randomIdx uses crypto.getRandomValues, a cryptographic random number generator, not Math.random, and it draws the winner before the animation starts, so the visual deceleration is presentation only and cannot change the outcome. The modulo bias from taking a random 32-bit integer mod n is negligible: for n = 8 the bias is about 2 x 10^-9, and even at the 30-entry cap it stays below 8 x 10^-8.
Practical limits to know: entries are capped at 30 characters and duplicates are silently removed, so two people with the same name count as one slice. The winner is computed with equal probability per slice; there is no weighting, so a team of 6 cannot be given twice the chance of a team of 3 unless you enter their names that many times (which the duplicate filter will block). If every field is blank the wheel draws an empty grey disc and the spin button does nothing useful.
Also note this models an ideal pointer of zero width. A real prize wheel with a wide rubber flap can knock the result into an adjacent slice, and a physical wheel with uneven friction is measurably non-uniform; published studies of carnival-style wheels show winning-segment frequencies deviating from nominal probability by several percentage points. For records that matter (giveaways, compliance draws), screenshot the console output or the landed wheel, and check your local rules: some jurisdictions require disclosed odds and a free entry route for prize promotions.