Random Picker — List, Coin, Dice, Number
Pick a random item from a list, flip a coin, roll dice, or generate a random number.
Loading Random Picker — List, Coin, Dice, Number… If nothing happens, please enable JavaScript.
Frequently asked questions
Are my lists or results stored or sent to a server?
What is the difference between Math.random() and crypto.getRandomValues()?
How does the coin flip work — is it really 50/50?
Can I use this for a fair raffle or competition?
Can I pick multiple items from a list without repeating the same item?
How does rolling dice work with multiple dice types?
Is this tool suitable for generating random numbers for cryptographic purposes?
What is a Fisher-Yates shuffle and why does it matter?
Can I pick a random item with different items having different probabilities?
What happens if two people run this tool at the same time — could they get the same result?
About Random Picker — List, Coin, Dice, Number
True randomness is surprisingly hard to achieve with a computer. Computers are deterministic machines: given the same starting state, they produce the same output. Early random number generators for games and simulations used mathematical formulas — typically linear congruential generators — that produce sequences appearing random but that are entirely predictable if you know the seed value and the algorithm. This distinction between true randomness and pseudorandomness matters enormously in contexts like cryptography, where a predictable sequence can be exploited, but also in fair draws, raffles, and games where verifiable unpredictability is part of the social contract.
The need to pick randomly comes up constantly in everyday life and in technical contexts. Teachers use random pickers to call on students without showing favouritism. Raffle organisers draw prize winners from large entry lists. Game masters roll dice for tabletop roleplaying outcomes. Developers need to randomly assign test users to A/B experiment cohorts, shuffle arrays of data, or generate random sample datasets. Decision-makers use coin flips and random number generators to break ties or introduce deliberate variability into processes that might otherwise develop systematic biases. Sports leagues use random draws to assign brackets and fixtures.
This tool uses `crypto.getRandomValues` — the same Cryptographically Secure Pseudo-Random Number Generator (CSPRNG) that browsers use for TLS key material and password generation. Unlike `Math.random()`, which uses an unseeded algorithm that can be predicted from observed output and is explicitly not suitable for security purposes, `crypto.getRandomValues` draws its entropy from the operating system's hardware noise sources: interrupt timing, thermal noise, and other unpredictable physical phenomena. This means each pick is independent of all previous picks and cannot be predicted or reversed. Everything runs in the browser — no server is involved, and no lists or results are stored.
A few practical notes: when picking multiple items from a list without replacement (each item can only be chosen once), the tool performs a Fisher-Yates shuffle of the list and returns the first N items. This is mathematically equivalent to putting names in a hat and drawing them one by one. For dice rolls, you can combine multiple dice types — 1d6 + 1d20 + 2d8 — to replicate tabletop RPG mechanics. For number ranges, the endpoints are inclusive on both sides. If you want a weighted random draw — where some items are more likely than others — duplicate those items in your list proportionally before running the picker.
Rolling Bones to Quantum Noise: Five Millennia of Trying to Generate Randomness
Humans have sought reliable randomness for as long as they have needed to make fair decisions, divide inheritances, or consult the divine. The oldest known randomness devices are knucklebones (astragali) — the ankle bones of sheep, used as dice in Mesopotamia and Egypt as early as 3000 BC. The Roman practice of casting lots (sortes) used pebbles, pottery shards, or wooden tokens drawn from a container. Julius Caesar is said to have settled disputes by lot, and the word "lottery" itself derives from the Old French "lot," meaning fate or portion.
The first algorithmic random number generator was published by John von Neumann in 1946 as the middle-squares method: take a number, square it, extract the middle digits, and repeat. Von Neumann himself was under no illusions — he noted that anyone who uses arithmetic methods to produce random numbers is in a state of sin. The method was deterministic and quickly became periodic, repeating its sequence after a few hundred iterations. Linear congruential generators (LCGs), introduced formally by D. H. Lehmer the same year, were more robust and remained the standard in languages like C's `rand()` for decades.
The recognition that deterministic pseudorandomness is fundamentally unsuitable for cryptography drove the development of hardware random number generators (HRNGs) and later the OS-level entropy pools that underlie `crypto.getRandomValues()` today. Linux's `/dev/random` and `/dev/urandom`, introduced in the mid-1990s, harvest entropy from keyboard timing, disk seek times, and network interrupts. Modern CPUs include dedicated hardware instructions — Intel's RDRAND, AMD's equivalent — that measure thermal noise in transistors to produce true random bits at gigabit speeds. What von Neumann described as sin has been replaced by quantum physics.