How SpinOfLuck Picks a Winner
SpinOfLuck picks the winner with your browser's secure random number generator before the wheel finishes spinning — every entry has an equal chance and the animation is just for show.
How a winner is selected
The process is straightforward and happens entirely inside your browser in a fraction of a second:
Step 1 — User Clicks Spin
You trigger a draw by clicking the Spin button.
Step 2 — Secure Random Number Generated
Your browser's secure random generator produces an unbiased number instantly.
Step 3 — Wheel Animation
The wheel spins to visualise the already-chosen result.
Step 4 — Winner Selected
The entry that the random number maps to is declared the winner.
Why every spin is unbiased
Every name has the same chance of being picked. When you spin, SpinOfLuck draws a number from your browser's secure random generator and matches it to a slice, so the odds line up exactly with what's on the wheel — no slice is quietly favoured. Giving an entry more weight just makes its slice bigger; the draw stays proportionally fair.
- Equal chance for every entry
- Cryptographically secure random source
- No hidden bias toward any slice
- The animation cannot change the result
- Weighted entries stay proportionally fair
- Winner decided before the spin is visible
Why previous results don't affect future spins
Each spin is statistically independent. SpinOfLuck generates a brand-new random number for every draw; it has no memory of previous outcomes and makes no attempt to “balance” results over time.
This means the same name can be picked twice (or more) in a row — that is entirely expected and not a sign that anything is wrong. Believing that a recent result makes certain future outcomes more or less likely is called the gambler's fallacy and it does not apply to independent random draws.
Practical tip for classrooms: if you want each name used only once, toggle the Avoid repeats option in the settings panel. SpinOfLuck will then skip already-selected entries until everyone has had a turn.
You can also visit the Probability Simulator to run thousands of virtual spins and see how each entry converges toward its expected share of wins over time.
Math.random vs crypto.getRandomValues
Browsers offer two kinds of random number. Here's the short version of why SpinOfLuck uses the stronger one:
The everyday one
JavaScript's built-in Math.random(). Quick and perfectly fine for casual games or animations, but it isn't designed to be secure or unpredictable.
The secure one
Your browser's secure random generator (crypto.getRandomValues) — the same kind browsers use for encryption. It's statistically robust and can't be predicted. This is what SpinOfLuck uses.
For a classroom draw or a giveaway, either would feel the same. SpinOfLuck uses the secure option simply because there's no downside to it — and it leaves no room for doubt.
Don't take our word for how these APIs behave — see the MDN documentation for crypto.getRandomValues and the W3C Web Cryptography API specification, which define the guarantees this page describes.
Why teachers can trust the results
Because the random draw happens inside your own browser before the animation plays, neither SpinOfLuck nor any server can know — let alone influence — the outcome in advance. There is no backdoor to favour a particular student, no hidden weighting, and no way for anyone watching to predict the result.
The combination of equal default odds, a cryptographically secure random source, and fully independent spins means the wheel behaves exactly as you would expect a fair draw to behave. You can verify this yourself by running the Probability Simulator, which lets you run up to 100,000 virtual spins and inspect the convergence of win rates toward equal probability.
SpinOfLuck is well-suited for classrooms, team activities, and casual giveaways. It is also safe and ad-free — see the Safe for Schools page and the Safety & Privacy page for full details.
Important caveat: SpinOfLuck is NOT certified for regulated gambling, licensed lotteries, or any legally binding prize draw. If your context requires certified randomness with an audit trail, please use a platform specifically designed for that purpose.
Frequently asked questions
- How does SpinOfLuck choose the winner?
- SpinOfLuck calls your browser's built-in cryptographic random number generator (crypto.getRandomValues) before the wheel starts spinning. The winning entry is decided at that moment — the animation simply plays out the result visually.
- Is the wheel really random?
- Yes. SpinOfLuck uses your browser's secure random generator — the same kind browsers rely on for encrypted connections. It produces unbiased numbers that can't be predicted.
- Can the result be rigged or predicted?
- No. The random number is generated inside your own browser, so neither SpinOfLuck nor any server can see or influence it ahead of time.
- Does where the pointer stops decide the winner?
- No — the winner is determined by the random draw before the animation begins. The wheel then spins to land on that winner. The pointer's resting position is cosmetic, not causal.
- Why did the same name get picked twice?
- Each spin is fully independent, so any name can be chosen again on the very next spin. This is statistically expected, not a bug. If you want each name used only once, enable the "avoid repeats" option in the settings.
- Do earlier spins change later spins?
- No. Every spin generates a fresh random number independently. Past outcomes have zero influence on future draws — believing otherwise is the gambler's fallacy. SpinOfLuck makes no attempt to "balance" results over time.
- What is the difference between Math.random and crypto.getRandomValues?
- Math.random() is a pseudo-random generator built into JavaScript. It is convenient and fine for casual use but is not cryptographically strong and its output can theoretically be predicted if the internal state is known. crypto.getRandomValues draws from the operating system's secure entropy pool and is designed to be statistically robust and unpredictable, even to an attacker.
- Is weighted spinning still fair?
- Yes. Adding extra weight to an entry simply increases its slice of the wheel proportionally — its probability of being selected matches its share of the total weight exactly. The draw itself remains an unbiased random sample from that distribution.
- Can I verify the randomness myself?
- Yes. Visit the Probability Simulator at /probability-simulator to run up to 100,000 virtual spins and observe how each entry converges toward its expected share of wins. A fair random source produces convergence; a biased one would not.
- Is SpinOfLuck suitable for official lotteries or gambling?
- SpinOfLuck is great for classrooms, giveaways, team decisions, and casual draws. It is NOT certified for regulated gambling, licensed lotteries, or any legally binding prize draw. Use a certified platform for those contexts.
- Does randomness work offline?
- Yes. crypto.getRandomValues is a browser API that runs entirely on your device without any network connection. You can use SpinOfLuck offline and the random draw is just as secure.
- What if my browser does not support crypto.getRandomValues?
- All modern browsers (Chrome, Firefox, Safari, Edge) have supported crypto.getRandomValues for many years. On a very old browser that lacks it, SpinOfLuck falls back to Math.random automatically so the wheel still works, though with a less cryptographically robust source.