UUID Generator
Generate RFC 4122 version 4 UUIDs using your browser's cryptographically secure random number generator, in bulk, with uppercase/lowercase and hyphen options, plus format validation.
Free to use · Runs in your browser · No account required
Processed locally in your browser
Nothing you enter here is uploaded, transmitted to a server, or stored by this tool. Generated UUIDs stay in your browser; nothing is transmitted or logged.
Runs entirely in your browser — nothing is sent to a server
Generate
Up to 1000 per batch.
5 UUIDs (v4)
- 4bc47d16-49cb-4c09-be4a-8328553afa2c
- ccd563e5-f719-45b4-8392-6076ff48612a
- a4acf6a9-ea4d-4c2e-9a85-2920fd769c44
- 5b440229-0c0d-4015-98d0-812ab5559db1
- 757d4da0-7303-468f-bf13-d4bbbf07f3ae
How to use this tool
- 1Set how many UUIDs you need (up to 1,000) and toggle uppercase or hyphen-free formatting.
- 2Click Regenerate any time — every value comes from a fresh cryptographically secure random draw.
- 3Copy one value at a time, copy the whole batch, or download as .txt or .json.
- 4Paste any existing UUID into the validator to check its format and detect its version.
Why UUID v4, and why not Math.random()
A UUID v4 is 122 random bits arranged into the standard 8-4-4-4-12 hexadecimal layout, with fixed version (4) and variant bits so it's recognizable as a v4 identifier. With a cryptographically secure random source, collision probability is negligible for virtually any practical dataset size.
Math.random() is not appropriate for identifiers. It's not cryptographically secure, and some JavaScript engines use a smaller internal state than the output suggests, making values more predictable than they look. This tool uses crypto.randomUUID() where supported, falling back to crypto.getRandomValues() with the version/variant bits set per RFC 4122 — never Math.random().
Frequently asked questions
Is Math.random() used anywhere in this generator?
No. This tool uses crypto.randomUUID() where the browser supports it, falling back to crypto.getRandomValues() with RFC 4122 version/variant bits set manually — never Math.random().
What UUID version does this generate?
Version 4 — randomly generated, the most common choice for general-purpose unique identifiers.
Is there a limit on how many UUIDs I can generate at once?
Yes, generation is capped at 1,000 per batch to keep the page responsive.
Related writing
Planned — not yet published
- PlannedUUID v4 vs v7: choosing a primary key format for PostgreSQL— Index locality and write-amplification tradeoffs.
- PlannedWhy Math.random() is the wrong way to generate identifiers— Collision math and the case for `crypto.getRandomValues`.
- PlannedUsing UUIDs as PostgreSQL primary keys without wrecking index performance— Companion to the indexing deep-dive article.
Related tools
- Data formatting
JSON Formatter & Validator
Format, minify, and validate JSON with clear syntax-error locations.
- Configuration
Environment File Validator
Check .env content for duplicate keys, malformed lines, and missing values.
- Security & tokens
JWT Decoder
Decode a JWT's header and payload and inspect standard claims locally.