How the Picker Draws Fair Winners
AnyTool Random Name Picker decides the winner(s) before any animation plays. Your names are parsed one per line (blank lines dropped, whitespace trimmed) into a pool, and the tool draws winners with a Fisher–Yates shuffle powered by the Web Crypto API (crypto.getRandomValues via rejection sampling), then takes the first N for the requested number of unique winners — so every name is exactly equally likely and there is no modulo bias. Math.random is never used. The suspenseful reveal then rapidly cycles a random highlighted name and decelerates with a cubic ease-out until it settles on the already-chosen winner(s). Because the result is fixed first and the cycling only slows to a stop on it, the visible outcome always matches the fairly drawn winner — the animation provides suspense, it does not make the decision.
- Winner(s) chosen by crypto.getRandomValues (CSPRNG), not Math.random
- Rejection-sampled Fisher–Yates shuffle removes modulo bias
- Pick N unique winners by taking the first N of the shuffle
- Reveal animation only settles on the already-decided result
- All randomness runs client-side — no server round-trip
