Names on the Wheel
Spinner
Spin to pick a winner
Each spin picks the winning slice using crypto.getRandomValues() with rejection sampling before the animation starts, so every name has an exactly equal chance — the spin itself is just landing on the number that was already drawn.