Fairness
SpinPoint selects the winner using secure randomisation before the wheel animation begins. The animation only visually reveals the selected result.
The randomisation method
crypto.getRandomValues (CSPRNG, rejection sampling). SpinPoint never uses Math.random() to pick a winner. Random values come from the browser's cryptographic random number generator, and modulo bias is removed with rejection sampling, so every valid entry has a probability of exactly 1 / N.
The exact order of operations
- Collect all valid participants.
- Securely select the winner.
- Store the confirmed result.
- Calculate the matching wheel segment.
- Calculate the required animation.
- Animate the wheel.
- Stop on the selected winner.
- Reveal, play sound, announce with voice, record the result.
Because steps 1–3 happen before any pixel moves, the animation physically cannot change the outcome.
What does not affect the odds
- Uploading a document, or which column you selected.
- The position of a name in the list or on the wheel.
- Event mode, theme, colours, wheel size or label length.
- Countdown length, spin duration, rotations, sound or voice.
- Displaying a sample of segments for very large lists — every entry is still drawn from the full pool.
Duplicates
Duplicate entries count as separate chances of being selected. If "Sarah" appears twice in a list of three entries, Sarah has two of the three chances. SpinPoint detects duplicates during import, explains this, and lets you keep or remove them — it never removes them silently.
Verification information
Every recorded result stores the spin number, the winner, the timestamp, the number of entries in the pool at that moment, and the randomisation method used. Export your results to CSV, TXT or JSON to publish or archive that record.