axiomape.com
Configure Your Numbers
Allow Duplicates - If checked, the same number can appear more than once in your results. If unchecked, every number in the result will be unique.
Why CSRNG? This tool uses window.crypto.getRandomValues() - your browser's Cryptographically Secure Random Number Generator (CSRNG). Unlike basic Math.random(), which uses a predictable mathematical formula, CSRNG draws from your device's entropy pool - physical noise from hardware, timing jitter, and system events. The result is a uniformly distributed sequence of integers that is genuinely unpredictable.

Your Numbers

History (last 5 sets)

The Ultimate Guide to Randomness and Probability

Everything you need to know about how random numbers work, why they matter, and where they show up in everyday technology.

What makes a random number generator "cryptographically secure"?
A Cryptographically Secure Random Number Generator (CSRNG) must satisfy two core mathematical properties. First, it must be unpredictable: given any sequence of previous outputs, it must be computationally infeasible to predict the next value. Second, it must be backward-secure: if an attacker somehow learned the generator's internal state at any moment, they still could not reconstruct any previously produced values.

Ordinary generators like Math.random() fail both tests. They use deterministic algorithms - formulas that start from a fixed number (the seed) and compute each output mechanically. If you know the algorithm and the seed, the entire sequence is predictable. A CSRNG avoids this by continuously mixing in fresh entropy - raw unpredictability harvested from your operating system's physical environment. Your browser's window.crypto.getRandomValues() API taps directly into this system-level entropy pool, ensuring that every number it produces is genuinely, verifiably random.
Why should I avoid simple mathematical randomizers for high-stakes decisions?
When you use Math.random() or similar functions in a lottery picker, card shuffler, or decision-maker, you introduce a hidden bias: predictability. In 2010, security researchers demonstrated that many JavaScript implementations of pseudo-random generators were so weak that an attacker who observed a few outputs could reconstruct the internal seed within minutes - and then predict every future number the generator would ever produce.

For casual use, such as picking a color scheme or shuffling a playlist, this risk is trivial. But for anything involving fairness, money, competition, or security (lotteries, game mechanics, password generation, contest draws), the stakes change dramatically. A predictable generator can be gamed. A CSRNG cannot. The distinction is not theoretical - it is the foundational reason why regulated online gambling, cryptographic key generation, and authentication systems are legally required to use certified CSRNGs. This tool applies the same standard to your everyday number-picking needs.
What is entropy and how does it drive unpredictability?
Entropy is a term borrowed from thermodynamics and information theory. In computing, it refers to the total amount of genuine unpredictability available in a system. Think of it like a jar of random tokens: the more unique, chaotic tokens you add, the harder it becomes to predict what you will draw next.

Modern operating systems collect entropy from dozens of sources simultaneously: the precise timing of your keystrokes (measured in nanoseconds), the exact path and speed of mouse movements, the jitter between hardware interrupts, disk access times, and even radioactive decay in specialized hardware modules. This raw chaos is fed into an "entropy pool" - a reservoir of unpredictability maintained by the OS kernel. When your browser calls window.crypto.getRandomValues(), it draws from this pool to produce its output.

One important nuance: entropy can be depleted. On a newly booted server with no user interaction, there may not be enough entropy yet to produce truly secure random values. This is a known challenge in server-side cryptography, but for browser-based tools like this one, normal user activity generates more than sufficient entropy at all times.
How are random numbers used in modern technology?
Random numbers are far more central to modern technology than most people realize. Here are some of the most important applications:

Cryptography and Security: Every time you connect to a website over HTTPS, random numbers are used to generate session keys - unique codes that encrypt your connection. These keys must be unpredictable; a predictable key would let attackers decrypt your traffic.

Lotteries and Gaming: Regulated online lotteries, slot machines, and card games use certified CSRNGs to guarantee provably fair outcomes. Gaming commissions audit these systems to confirm no predictability exists.

Scientific Simulation: Computational models for weather forecasting, particle physics, financial risk analysis, and drug discovery all use large volumes of random numbers to simulate real-world uncertainty through a technique called Monte Carlo simulation.

Machine Learning: Neural networks are initialized with random weights, training data is randomly shuffled to prevent bias, and regularization techniques like dropout randomly disable neurons during training. Without quality randomness, machine learning models cannot generalize reliably.

Unique Identifiers: When your app creates a user account and assigns a UUID (Universally Unique Identifier), it typically draws from a CSRNG to ensure that no two IDs are ever alike - even across millions of users.
What is uniform distribution and why does it matter for fairness?
Uniform distribution means that every possible outcome has exactly the same probability of being selected. If you ask a uniformly distributed random number generator for a number between 1 and 6, each of the six values should appear approximately one-sixth of the time over many trials - just like a perfectly balanced die.

Achieving true uniform distribution from a CSRNG requires a careful technique. A CSRNG produces raw random bytes, which can represent numbers up to a certain power of two. If your desired range does not align perfectly with a power of two, a naive approach (simply taking the remainder after division, called "modulo bias") will make some outcomes slightly more likely than others. This tool eliminates modulo bias using a technique called rejection sampling: if a generated value falls in the biased zone, it is discarded and a new one is drawn. The result is a provably unbiased, uniform selection every single time.

This matters most when ranges are large. For lottery-scale ranges (1 to 69, for example), modulo bias can create measurable unfairness over thousands of draws. Rejection sampling - used by this tool - is the industry-standard solution.
Security Note: This tool uses a cryptographically secure random number generator to ensure all results are mathematically unbiased and truly unpredictable.