List Management
Items detected: 0

Remove Winner After Spin
Weighted Probability
Higher weight = larger slice and greater chance of selection.
Spinner Visualizer
Spin to reveal a winner
History and Metrics
0
Total Spins
0
Items Left
Last 5 winners (most recent first)
No spins yet. Add items and spin!
Key Terms Explained
Uniform Distribution
A probability distribution in which every possible outcome has an equal chance of occurring. When all weights are equal, this spinner produces a uniform distribution across all items.
Cryptographic Randomness
Randomness generated from hardware-level entropy sources via the operating system. It is statistically indistinguishable from true randomness and cannot be predicted or reproduced by an attacker.
Probability Weighting
Assigning relative importance values to items so that higher-weighted items occupy proportionally larger wheel slices and are selected more often over many spins.
Spin Dynamics
The mathematical description of how a spinning wheel decelerates over time due to friction. This tool simulates that behavior using a cubic ease-out curve to create natural, satisfying deceleration.
Momentum
In physics, momentum is the product of an object's mass and velocity. In the context of this spinner, it refers to the visual simulation of a wheel that gradually loses rotational energy and slows to a stop.
Entropy Pool
The operating system's reservoir of unpredictable data collected from hardware events such as keyboard timing, mouse movements, and disk activity. It feeds the cryptographic random number generator.
Rejection Sampling
A technique used to eliminate modulo bias when generating random integers. By discarding values that fall in a biased tail of the distribution, it ensures every outcome has exactly equal probability.
Ease-Out Cubic
An animation timing function defined as f(t) = 1 - (1 - t) cubed. The wheel starts fast and decelerates rapidly at the end, mimicking the natural friction of a physical spinning wheel.
CSPRNG
Cryptographically Secure Pseudo-Random Number Generator. The class of algorithm used by window.crypto.getRandomValues(). Suitable for security-sensitive applications because its output cannot be practically predicted.

The Complete Guide to Fair Random Selection and Decision Spinners

Whether you need to pick a raffle winner, assign tasks to team members, choose tonight's dinner restaurant, or run a classroom activity, a random choice spinner gives every option a provably fair shot. This guide explains how to get the most from this tool and why the underlying randomness technology matters.

How to Use This Tool

Start by typing or pasting your list of items into the List Management panel on the left. Each item goes on its own line. The wheel automatically updates to show one colored slice per item as you type. Press Spin the Wheel to launch the animation. A pointer at the top of the wheel indicates the winning slice after the wheel slows to a stop.

Toggle Remove Winner After Spin to run elimination-style draws where each winner is removed from the pool before the next spin. Toggle Weighted Probability to reveal individual weight inputs for each item. Enter any positive number as a relative weight: an item with weight 3 will be selected approximately three times as often as an item with weight 1 over many spins.

Use Copy Result to copy the current winner to your clipboard, or Clear History to reset the session log. The metrics panel tracks total spins and remaining items at a glance.

Why Cryptographic Randomness Matters for Fair Selection

Most web-based tools rely on JavaScript's Math.random(). While adequate for games and simulations, Math.random() uses a deterministic algorithm (typically an xorshift variant) seeded by a value derived from the system clock. The output can be predicted if the seed is known, and the distribution has subtle biases at scale.

This tool uses window.crypto.getRandomValues(), which is mandated by the W3C Web Cryptography API standard and is implemented in every modern browser. It pulls entropy directly from the operating system's randomness pool, which is continuously refilled by hardware events. The result is a statistically indistinguishable-from-true-random number that no script, extension, or observer can predict.

How Weighted Probability Changes Your Odds

Weighted selection works by mapping each item to a proportional segment of a total probability range. If you have items A (weight 3), B (weight 2), and C (weight 1), the total weight is 6. Item A covers the range 0-3, Item B covers 3-5, and Item C covers 5-6. A random number is generated in the range 0 to 6, and the item whose range contains that number is selected. The visual wheel reflects this directly: each slice's arc angle is proportional to its weight.

The Physics of Deceleration: Spin Dynamics Explained

The spinner animation uses a cubic ease-out function to simulate realistic momentum loss. A real wheel loses kinetic energy to friction at a rate that decelerates the rotation more slowly at first and more rapidly near the end. The cubic formula f(t) = 1 - (1 - t)^3 closely approximates this behavior, producing a visually satisfying spin that feels physical rather than digital. The minimum spin count is set to six full rotations to ensure genuine visual excitement on every draw.

Practical Use Cases for a Random Choice Spinner

Random choice spinners are used in classrooms to call on students without bias, in offices to assign rotating duties or meeting facilitators, at parties for game decisions and dares, in content creation to decide topics or formats from a backlog, and in fantasy sports drafts to determine pick order. The Remove Winner mode is especially useful for any scenario where you need to draw multiple winners from a single pool without repetition.

Frequently Asked Questions

This spinner uses window.crypto.getRandomValues(), a cryptographically secure random number generator built into your browser. Unlike Math.random(), which uses a predictable algorithm, crypto.getRandomValues() draws from the operating system's entropy pool. Every item in your list has a mathematically equal probability of being selected, assuming equal weights.
Simple random selection gives every item an equal chance of being chosen. Weighted probability lets you assign a relative importance to each item. For example, if Item A has weight 2 and Item B has weight 1, Item A is twice as likely to be selected. This is useful for raffles where some participants have earned multiple entries.
Standard pseudo-random number generators like Math.random() use a deterministic algorithm seeded from a predictable value. Given the same seed, they produce the same sequence. Cryptographic random number generators draw from system-level entropy sources like hardware noise, making the output statistically indistinguishable from true randomness and impossible to predict or reproduce.
This tool is suitable for fair, casual decision-making such as picking raffle winners, assigning group roles, or resolving friendly disputes. For decisions with legal, financial, or safety consequences, we recommend consulting a professional and using formally audited randomization procedures appropriate for the context.
Enable the Weighted Probability toggle below the item list. A weight input field appears next to each item. Enter any positive number as a relative weight. Items with higher weights occupy larger slices on the wheel and are proportionally more likely to be chosen. Leave all weights at 1 for equal probability across all items.
Copied to clipboard!