Random

How to Choose a Random Number: Methods, Tools, and When to Use Each

HR
Hassaan Rasheed
· May 30, 2026 9 min read

Random number generator on screen showing a result of 73 in a large display, with a minimum field set to 1 and maximum set to 100, and a generate button below

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.

Comparison diagram showing mental picking clustering around 37 and 73 on a 1-100 scale, versus a uniform distribution from a cryptographic random generator across all values

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.

Frequently Asked Questions

A cryptographic random number generator like the one in any modern browser produces the most reliable random results. It uses a hardware-seeded source with no predictable pattern, unlike mental picks or simple software generators.

Human number selection has documented biases. People avoid recently named numbers, favor numbers that feel random (like 7 or 37 in a 1 to 100 range), avoid round numbers, and underuse numbers near the edges of a range.

A true random number comes from an unpredictable physical source. A pseudo-random number comes from a mathematical algorithm seeded with a starting value. Pseudo-random sequences are not predictable without knowing the seed, but they are not statistically identical to true random sources.

Yes, for small ranges. A standard die covers 1 to 6. For larger ranges, multiple dice or a dedicated random number generator are more practical. The fairness of physical dice depends on their manufacturing quality.

Most modern online generators use the browser's crypto.getRandomValues() function, which draws from a hardware-seeded entropy source. This produces numbers that are statistically indistinguishable from true random values for any practical purpose.

No. Math.random() is a pseudo-random generator. It produces unpredictable results in practice, but it uses an algorithmic sequence that is not cryptographically secure. For most casual uses this is fine; for security or high-stakes draws, use crypto.getRandomValues().

Randomness quality matters most in lotteries, security applications, and any situation where a predictable sequence could be exploited. For casual decisions and games, pseudo-random quality is usually more than sufficient.

HR

Written by

Hassaan Rasheed

Builder of ToolCenterHub. Passionate about creating fast, privacy-first tools that anyone can use without friction, accounts, or paywalls. Writing about design, development, and the web.

Connect on LinkedIn