Skip to content

UUID Generator Online Free

Generate cryptographically random UUIDv4 identifiers, single or in bulk, with optional uppercase and dash-stripped formats.

In your browseryour files never leave your device.

Learn more
Random — 122 bits of entropy. The default for most app use.
⌘Enter gen · ⌘⇧C copy all

About this tool

A UUID is a 128-bit identifier with extremely low collision probability — 32 hex digits laid out as 8-4-4-4-12 with hyphens, per RFC 4122. Version 4 (the random variant) is the one you reach for most often, generated from 122 bits of entropy. This tool uses crypto.randomUUID, the Web Crypto API call exposed in every current browser, which is the same code path your Node 19+ or Deno backend uses. Output is deterministic in format and indeterministic in content: always 36 characters, always 5 groups, always lowercase by default, always RFC 4122 compliant for version and variant bits. Generate one, generate a hundred, copy the lot. Toggle uppercase or strip dashes if your downstream system has specific format requirements.

How to uuid generator online free

  1. Set the count

    How many UUIDs you need. The input goes 1 to 100. For more, generate multiple batches and concatenate. The default of 1 covers the "I just need an ID right now" case, which is by far the most common.

  2. Pick format options

    Standard hyphenated lowercase is the default and what almost every system expects. Toggle Uppercase or No dashes if your destination has stricter formatting requirements. The choice does not affect the underlying randomness — it is purely a string-level transformation after generation.

  3. Click Generate

    A fresh batch appears below. Each is independent and unique. Re-clicking generates a new batch — the old one is overwritten. The whole batch generates in milliseconds even for the maximum count of 100, because the randomness source is fast.

  4. Copy individual or all

    Each UUID has its own copy button (hover to reveal). Or use Copy All at the top to grab the whole batch as newline-separated text, ready to paste into a SQL INSERT, a CSV file, a fixtures.json, or a load test config. The newline-separated format is what most consumers expect.

Features

Cryptographic randomness

crypto.randomUUID under the hood, which means 122 bits of entropy pulled from the OS-level CSPRNG (CryptGenRandom on Windows, /dev/urandom on Linux/macOS, getrandom() on newer kernels). Not Math.random — that would be wrong for IDs that need to be unguessable, since Math.random is a pseudo-random number generator with a finite state that can be inferred from output samples. The collision probability for UUIDv4 is so small you would need to generate hundreds of billions of UUIDs before having a meaningful chance of a duplicate.

Bulk generation up to 100

Set the count from 1 to 100 and get the whole batch in one click. Each is independently random, so generating 50 sequentially or one batch of 50 produces the same statistical distribution. Useful for seeding test databases, fixture files, load test inputs, or any other case where you need a chunk of unique IDs at once. For larger batches, run multiple generations and concatenate; the underlying randomness source has effectively unlimited capacity.

Format options

Toggle uppercase if your downstream system expects uppercase hex (some legacy COM-era Windows code does; the RFC actually requires lowercase but many real systems accept either). Toggle no-dashes if you need the 32-character compact form (some Mongo drivers accept either, some legacy DBs use compact form for storage efficiency). Both flags compose, so you can get the uppercase no-dash variant in two clicks. The standard form — lowercase hyphenated — is what every modern system expects and what RFC 4122 mandates.

Local generation, verified in DevTools

crypto.randomUUID runs in your browser. The UUIDs never touch a server. Important because UUIDs are sometimes used as session IDs, share-link tokens, magic-link slugs, or other identifiers where the server seeing them defeats the purpose of generating client-side. Open DevTools, click Generate, watch the Network tab — no outbound requests. The randomness comes from your operating system's CSPRNG, not from any remote service.

Privacy & security

crypto.randomUUID is a browser primitive that pulls bytes from the operating system's secure random source (CryptGenRandom on Windows, /dev/urandom on Linux and macOS) and lays them out per RFC 4122. Generating 1 UUID or 100 UUIDs takes no network calls — the function runs in your tab. This matters when the UUID is going to be used as a session ID, an unguessable share-link slug, or a magic-link token, because in those cases the server seeing the generated value would defeat the security property of generating it client-side.

Frequently asked questions

v4 versus v1 versus v7 — which one should I use?
v4 is fully random and the safest default. v1 embeds the MAC address and timestamp of the generating machine, which leaks information (you can sometimes trace a UUIDv1 back to a specific device and time) and creates predictability; almost no one uses v1 anymore for that reason. v7 is the new hotness from 2024 — it embeds a millisecond Unix timestamp at the front, making the IDs roughly sortable by creation time, which is great for B-tree indexes in databases (better locality than v4 means faster inserts and smaller indexes). v7 is what I would pick for a new system today; v4 is the safe choice when you do not know who or what is consuming the IDs or whether the consumer expects v4 specifically.
How likely is a collision?
For UUIDv4, you would need to generate about 2.71 quintillion UUIDs (2.71 × 10^18) before having a 50% chance of any duplicate, by the birthday bound. For practical scale — a system generating a million UUIDs per second — the heat-death of the universe would arrive first. Treat collisions as not happening. The math is the same as for any 122-bit random value: with N bits, you need 2^(N/2) values for a 50% collision chance, which here is 2^61.
Database primary keys — UUID or auto-increment integer?
UUIDs let you mint IDs on the client without a round-trip and avoid leaking row counts via sequential IDs. The cost is index size (16 bytes per UUID vs 4-8 for an int) and worse cache locality (random insertion scatters writes across the index B-tree, hurting insert throughput on large tables). UUIDv7 fixes the locality problem by being roughly sortable. For most web apps today, UUID is the right default; only consider integers if you have measured a real performance problem and confirmed the UUID is the bottleneck. ULID is another option in the same family — roughly sortable, 128-bit, lexicographically ordered.
Are crypto.randomUUID outputs cryptographically secure?
Yes. crypto.randomUUID, like all crypto.* methods in Web Crypto, draws from the OS-level CSPRNG (CryptGenRandom on Windows, /dev/urandom on Linux/macOS). That is the same source SSL libraries use for nonces and key material. Math.random is not cryptographically secure and should not be used for IDs that need to be unguessable — Math.random output is predictable from a few samples in some engines, and the V8 implementation has been reverse-engineered publicly.
Is the standard form 32 or 36 characters?
36 with hyphens, 32 without. The hyphenated 8-4-4-4-12 layout is canonical (e.g. 550e8400-e29b-41d4-a716-446655440000) and what most databases and APIs expect. Some drivers (older Mongo, some Go libs, some C libs) accept the dashless 32-char form. When in doubt, use hyphens — they are the RFC-mandated form and the universal default. If your destination strips them, fine; if it requires them, you are covered.