Free Random Number Generator

Generate cryptographically secure random numbers within a custom range. Supports integers, decimals, and bulk generation up to 1000.

Range Settings

Format Settings

Security: Uses crypto.getRandomValues() for cryptographically secure random numbers.

Click Generate to create a random number

Key Features

casino

Cryptographically Secure

Uses crypto.getRandomValues() for true randomness, not Math.random().

straighten

Custom Range

Set any minimum and maximum values, including negative numbers.

decimal_increase

Integer or Decimal

Choose between whole numbers or specify decimal precision from 1 to 15 places.

library_add

Bulk Generation

Generate up to 1000 random numbers at once for batch needs.

Understanding Random Number Generation

PRNGs like Mersenne Twister are fast and reproducible for simulations. CSPRNGs provide cryptographically secure randomness using operating system entropy sources. Bias elimination ensures uniform distribution.

Frequently Asked Questions

Getting Started
Why crypto.getRandomValues() instead of Math.random()?expand_more
Math.random() is seeded from a deterministic PRNG that an attacker can reverse-engineer. crypto.getRandomValues() pulls from the OS entropy pool for cryptographically secure output.
How does "unique numbers" work?expand_more
The uniqueness guarantee uses rejection sampling with a Set. The range size must be at least as large as the requested count. The tool warns if it's mathematically impossible.
Does the generator produce uniform distribution?expand_more
For integer mode, the tool uses rejection sampling to eliminate modulo bias, producing statistically uniform output. Decimal rounding adds minor edge effects at min/max boundaries.
Can I use this for cryptographic key generation?expand_more
Use raw numbers as input for key derivation, but not as keys directly. A single random 31-bit integer is too weak for a cryptographic key (needs 128+ bits).