Loading…
Loading…
Generate truly random numbers, picks, and shuffles
—
Uses crypto.getRandomValues() — cryptographically secure randomness
Need productivity templates?
Task trackers, project planners, and automation scripts that save hours every week. Starting at $4.
Browse Productivity KitsTrue randomness is harder to achieve computationally than it appears. Standard programming language random functions use pseudo-random number generators that produce deterministic sequences — given the same seed, they repeat. Cryptographic randomness draws from physical entropy sources in the operating system, making the output statistically unpredictable. This matters for lotteries, sampling, security tokens, and any scenario where a predictable sequence would be exploitable or unfair.
The generator calls crypto.getRandomValues() to fill a typed array with cryptographically random bytes. To produce a number in a specific range [min, max], it uses rejection sampling: generate a random value modulo the range size, and if the result would fall in the biased tail (where 2^32 is not evenly divisible by the range), discard it and try again. This guarantees a uniform distribution with no favored values.
For unique number lists, the generator uses a Fisher-Yates shuffle on the target range — an algorithm that produces a perfectly uniform random permutation in O(n) time. For custom set randomization, the same shuffle is applied to the entered items.
Generation history is stored in component state for the current session, allowing you to review previous results without regenerating.
A teacher assigning random seat numbers to 30 students at the start of an exam to prevent coordinated seating.
A developer generating a cryptographically random 8-digit verification code for an OTP system mockup during local development.
A startup running a social media giveaway and picking 3 unique winners from a list of 247 comment entries using the Custom Set mode.
A board game group rolling a virtual die for a game that does not have physical dice, generating fair results that everyone can see simultaneously.
A statistician drawing a random sample of 50 IDs from a population of 5,000 for a survey, using the unique-numbers list mode.
Scope note: The generator operates on integers only — floating-point random numbers in a range (e.g., 0.0 to 1.0) are not directly supported. For lists larger than 10,000 unique numbers, generation may take a noticeable moment; the UI remains responsive due to synchronous processing. Generated results are not reproducible (no seed control) by design.
Choose Single Number, Multiple Numbers, or Custom Set mode
Set your range or enter your custom values
Click Generate to get cryptographically random results
Copy results to clipboard with one click
View generation history in the history panel
About the Random Number Generator
Uses the Web Crypto API (crypto.getRandomValues()) which is cryptographically secure — much better than Math.random().
You can generate numbers from -999,999,999 to 999,999,999. For lists, up to 1000 numbers at once.
Yes — enable the "Unique" toggle in Multiple Numbers mode to ensure no duplicates in your list.
No. All randomness is generated in your browser using the Web Crypto API.
Math.random() uses a deterministic pseudo-random number generator (PRNG) seeded from the system clock — it is fast but not unpredictable, and in theory its output sequence could be reconstructed. crypto.getRandomValues() draws from the operating system's entropy pool (mouse movements, hardware interrupts, thermal noise) and is cryptographically unpredictable, making it suitable for security-sensitive use cases.
Yes. For a standard 6-sided die, set the range to 1–6 and generate. For two dice, generate two numbers. For card draws without replacement, use the Custom Set mode — enter 52 card names, shuffle, and pick the top N. The "Unique" toggle in list mode also simulates drawing without replacement from a numbered set.
Switch to Custom Set mode, enter one name per line, set the count to 1 (or however many winners you need), and click Generate. The tool picks randomly from your list using cryptographic randomness. Enable "Unique" to ensure no winner is picked twice.
Spotify-Wrapped stats for ChatGPT, Claude & Claude Code
Open →UtilitiesYour whole life on one grid — one square per week
Open →UtilitiesHow often is AI asked to do your job’s tasks? Rank among 718 jobs
Open →UtilitiesFive rounds, one number — your reaction time in milliseconds
Open →