Random password generator

Not all “random” is equal — many online generators use a weak pseudo-random function. This one uses the Web Crypto API's CSPRNG, the same class of randomness source used in real cryptographic software.

Generated entirely in your browser Cryptographically secure randomness Nothing is ever transmitted or stored
16
Advanced options
5
12
6

Generate in bulk

Create several passwords at once using the settings above — useful for provisioning multiple accounts.

Check a password's strength

Type any password to score it instantly. This runs entirely in your browser — nothing is sent anywhere, logged, or stored.

Type a password above

Tips

Understand what 'random' actually means here

This generator uses crypto.getRandomValues with rejection sampling to eliminate bias — every character in your selected set has an equal chance of appearing.

Customize your character set

Toggle uppercase, lowercase, numbers, and symbols to match what a specific site or system requires.

Regenerate freely

There's no limit and nothing is logged — generate as many candidates as you want until one feels right.

Frequently asked questions

Why does true randomness matter for passwords?

Predictable patterns — even subtle ones from a weak random function — can theoretically be exploited. A CSPRNG removes that risk entirely.

What's the difference between Math.random() and crypto.getRandomValues()?

Math.random() is fast but not cryptographically secure and can be predictable. crypto.getRandomValues() is designed specifically for security-sensitive use, which is what this generator uses exclusively.

Can I exclude characters I find confusing?

Yes — toggle 'exclude ambiguous characters' to remove easily-confused characters like 1, l, I, O, and 0, or add your own custom exclusions.