Generate a random UUID v4 (Universally Unique Identifier) using the Web Crypto API.
Code
Utilitiescrypto.randomUUID();What is UUID v4?
UUID v4 is purely random — 122 bits of randomness with 6 bits reserved for version and variant markers. This gives roughly 5.3 × 10³⁶ possible values.
f47ac10b-58cc-4372-a567-0e02b2c3d479
↑ ↑
4 8-b (version and variant bits)
When to Use UUID v4
| Use Case | Why v4 Works |
|---|---|
| Database primary keys | Simple, no coordination needed |
| Session IDs | Unpredictable, secure |
| API request IDs | Easy to generate anywhere |
| Temporary identifiers | No meaning, just uniqueness |
When NOT to Use UUID v4
| Scenario | Better Alternative |
|---|---|
| Need sortable IDs | Use UUID v7 (timestamp-based) |
| Database index performance matters | Use UUID v7 (sequential) |
| Need deterministic IDs | Use UUID v3/v5 (name-based) |
| Debugging with timestamps | Use UUID v1 or v7 |
UUID v4 vs Auto-Increment IDs
| UUID v4 | Auto-Increment |
|---|---|
| Generate anywhere (client, server, offline) | Requires database roundtrip |
| No information leakage | Reveals record count |
| Harder to guess | Predictable (id+1) |
| Larger storage (16 bytes vs 4-8) | Smaller, faster indexes |
| Random = poor index locality | Sequential = good locality |
Collision Probability
With 122 random bits, you'd need to generate 1 billion UUIDs per second for 86 years to have a 50% chance of one collision. In practice, collisions are not a concern.
More JavaScript Snippets
Generate UUID v1
Generate a time-based UUID v1 using timestamp and random node ID.
Generate UUID v3
Generate a name-based UUID v3 using MD5 hashing of namespace and name.
Generate UUID v5
Generate a name-based UUID v5 using SHA-1 hashing of namespace and name.
Generate UUID v6
Generate a reordered time-based UUID v6 with improved sortability for databases.
Generate UUID v7
Generate a Unix timestamp-based UUID v7 with millisecond precision, ideal for database primary keys.
Add Days to Date
Add a specified number of days to a date and return the result in ISO format.