Random Password Generator
Generate a password built entirely from cryptographically random characters — no patterns, no predictability.
What does "random" actually mean here?
Every character is drawn independently from your browser's Web Crypto API (crypto.getRandomValues()), a cryptographically secure random number generator designed for security-sensitive tasks. Each draw uses rejection sampling so every character in the selected pool has an exactly equal chance of appearing — no character or position is more likely than another.
How is this different from a "strong" password?
A password can be random but still weak if it is too short. Randomness removes predictable patterns; length and character variety determine how large the search space is. This tool controls both, but is focused specifically on giving you unbiased, pattern-free output — pair it with a length appropriate to the account (see the strong password generator for a longer default).
Why not Math.random()?
Math.random() is a general-purpose pseudorandom generator not designed to resist prediction, and some implementations are not suitable for security purposes. This tool never uses it — only the Web Crypto API is used to generate passwords.
Frequently asked questions
Does this generator use Math.random()?
No. It uses the browser's Web Crypto API (crypto.getRandomValues), which is designed for security-sensitive randomness. Math.random() is not cryptographically secure and is never used here.
Could two people ever get the same random password?
It is possible in theory but astronomically unlikely for passwords of reasonable length, because each character is drawn independently from a large, uniformly distributed pool.
Is a random password the same as a strong password?
Randomness is one requirement for strength; length and character variety are the others. A short random password is still weaker than a long one.