
There are more ways to choose a random number than most people realize, and they are not all equal. Picking a number in your head, rolling physical dice, using a spreadsheet formula, or running a cryptographic browser tool all produce different quality results with different practical trade-offs. Which method you use matters more when fairness is being observed, when the stakes are higher, or when the process needs to be reproducible or documentable.
This guide runs through the main methods for choosing a random number, how each one actually works, and which situations each fits.
Picking a number mentally
The most available method is also the least random. When asked to pick a number between 1 and 10, most people say 7. When asked to pick a number between 1 and 100, people cluster around numbers that feel random: 37, 47, 63, 73. Numbers that end in 0 or 5 are underrepresented because they do not feel random. Numbers near 1 and 100 are underrepresented because they feel like they are at the edges.
This is not a flaw in any individual. It is a consistent, documented property of human cognition. People are not equipped to generate genuinely random sequences. We track recent numbers to avoid repeats, favor numbers with certain digit patterns, and produce sequences with statistically detectable regularities.
For personal, low-stakes decisions where the outcome only affects you, a mental pick is usually fine. For anything where fairness to others depends on the randomness, it is not adequate.
Physical dice and coins
Physical dice and coins are genuinely random, within the limits of manufacturing quality. A well-made six-sided die produces each face with equal probability over many rolls. A fairly balanced coin produces heads and tails with approximately equal frequency.
For small ranges, dice are practical and fast. One six-sided die gives you 1 through 6. Two dice summed give 2 through 12, but not with equal probability: seven is six times more likely than two or twelve because there are six ways to roll seven and only one way to roll each extreme.
The dice roller replicates this digitally for every standard die type: D4, D6, D8, D10, D12, D20, and D100. The digital version uses cryptographic randomness rather than physical mechanics, which is arguably more reliable than dice that might not be perfectly balanced.
For binary decisions, a physical coin flip is a classic fair method. The coin flip tool provides the same result digitally.
Spreadsheet functions
Excel and Google Sheets both include functions for generating random numbers: RAND() produces a random decimal between 0 and 1, and RANDBETWEEN(min, max) produces a random integer within a specified range.
These functions are pseudo-random generators. They produce results that look random and are unpredictable without access to the internal state, but they use algorithmic sequences rather than physical randomness sources. For most practical uses, including classroom draws, game decisions, and informal selections, pseudo-random quality is fine.
The main limitation of spreadsheet functions is that they recalculate every time the file changes. If you press any key after getting a result, the numbers regenerate. Capturing and locking the result requires an extra step like paste-special-as-values, which adds friction.
Spreadsheets also do not provide a visual output or easy auditability for a live audience. A result in a cell is easy to claim was manipulated. A spinning wheel or animated result from a dedicated tool is harder to dispute.
Browser-based random number generators
Modern browser-based generators use the crypto.getRandomValues() Web Cryptography API, which draws from a hardware-seeded entropy source. This source includes timing jitter, hardware sensor data, and system entropy, making it cryptographically secure in the sense that a predicted sequence cannot be reconstructed without access to the device's internal hardware state.
The random number generator uses this source. You set a minimum and maximum, optionally set a quantity and unique mode, and the results come from this cryptographic source. Each number is statistically independent of all previous results.
This is the most accessible high-quality random method for most people. No hardware needed beyond the device you are already using, no software to install, and the results are as random as any practical application requires.
For a deeper explanation of what makes randomness "random" and the difference between pseudo-random and cryptographic sources, the guide to how online random generators work covers the underlying mechanisms.

Hardware random number generators
True hardware random number generators produce randomness from physical processes: radioactive decay, thermal noise, or photon behavior. These sources have no algorithmic component and produce genuinely unpredictable sequences.
For most everyday uses, the browser's crypto.getRandomValues() is indistinguishable from a hardware random source in practice. The statistical properties are equivalent for any real-world application, including lotteries and security uses. Hardware generators are used in extremely high-stakes cryptographic contexts where even theoretical predictability must be eliminated.
You do not need a hardware random number generator to pick a fair lottery winner or run a classroom draw. The browser tool is sufficient.
When randomness quality actually matters
For most everyday decisions, the difference between pseudo-random and cryptographic random is invisible in practice. Picking a number between 1 and 10 for a classroom game produces a fair result whether you use a simple pseudo-random function or a hardware-seeded generator.
The quality difference matters in specific contexts:
Lotteries and draws with significant prizes: If the stakes are high enough that someone might attempt to predict or manipulate results, using a documented cryptographic source provides an audit trail. "Generated using crypto.getRandomValues()" is a stronger claim than "used RAND() in Excel."
Security applications: Generating session tokens, cryptographic keys, or any value that must resist attack requires genuine randomness. This is the context the crypto API was designed for.
High-volume generation: Over millions of samples, pseudo-random generators show statistical signatures that cryptographic generators do not. For lottery systems running millions of draws, the difference is meaningful.
Documented transparency: For any draw where the method will be questioned, a documented, verifiable source is stronger evidence of fairness than an undocumented one.
For casual decisions, games, and informal draws, any modern method works fine.
Choosing the right tool for the situation
You need a number in a specific range: Use the random number generator. Set your min and max, generate, done.
You need a small number from a die range: Use the dice roller. It handles D4 through D100 with dedicated buttons.
You need a binary result: Use the coin flip for 50/50, or the yes or no wheel for adjustable odds.
You need to pick from named options: Use the wheel spinner. Named entries work better on a wheel than converting everything to numbers and drawing from a range.
You need multiple unique numbers: Use the random number generator with unique mode enabled. This prevents repeats across the result set.
You need a full shuffled order: Generate as many unique numbers as there are items in your list, using a range from 1 to the list size. Each number maps to the item at that position.
The practical takeaway
Choosing a random number is a well-solved problem. The tools available in any modern browser produce cryptographically secure results that are fair by any practical standard. The mental pick is the method to stop using for anything where fairness to others is involved. Physical dice are fine for small ranges and visible in-person draws.
For anything where the range is larger than a die, the number of results is more than one, or the result needs to be documented or shown to an audience, a browser-based random number generator is the most accurate, transparent, and convenient option.
Browse the full random tools category for the complete set of options, each designed for a specific type of randomization task.


