Cookies for analytics and advertising
We use cookies for analytics and advertising, both sent to Google. Refusing changes nothing you can see.Read the privacy page
Press the button and get a version 4 UUID, or up to a hundred at once. They are produced by your browser cryptographic random number generator, in this page — which matters more than it sounds, because an identifier from a weak source looks exactly like one from a good source and behaves very differently.
Where it runs
Nothing is uploaded, because there is no file — it is worked out in this page.
No queue, no account
It answers as fast as your machine can, and it never asks who you are.
As often as you like
Nothing is counted and nothing is capped — answering again costs us nothing.
Version 4 is a UUID made of random bits — 122 of them, with the remaining six fixed to declare the version and variant. It carries no information about when or where it was made, which is exactly why it is the default: nothing about it leaks, and two generated independently anywhere in the world will not clash.
The others answer different questions. Versions 1 and 6 embed a timestamp and a node identifier, so they sort by creation time and disclose something about the machine. Versions 3 and 5 are deterministic — a hash of a name inside a namespace, so the same name always yields the same UUID. Version 7 is the newer time-ordered one, designed for database keys where random insertion hurts an index.
A UUID from `Math.random` has the same shape, the same dashes and the same version nibble as one from a cryptographic source. Nothing about it looks weak. But `Math.random` is a fast pseudo-random generator with a small internal state, and a handful of outputs can be enough to predict the rest — which turns a "random" identifier into a guessable one.
This page uses `crypto.randomUUID`, which draws from the operating system entropy and sets the version and variant bits correctly. Where it is unavailable, the page stops and says so rather than falling back — a silent fallback is how predictable identifiers reach production, because there is no symptom to notice.
It is unguessable, which is not the same as secret. UUIDs end up in URLs, in logs, in referrer headers, in analytics, in support tickets and in screenshots. Anything reachable by knowing a UUID is reachable by anybody who has ever seen that URL.
That makes them fine as an unguessable handle for something not very sensitive — a share link for a document, a one-off upload — and wrong as the only thing standing between the internet and somebody data. If knowing the identifier grants access, you have built authentication out of a value that leaks by design.
There are 2^122 possible version 4 UUIDs. To reach a one-in-a-billion chance of a single collision you would need to generate around 10^15 of them — a billion a second for about a month. For any real system the answer is that it will not happen.
The caveat is that this holds only if the randomness is real. Every reported UUID collision in the wild traces back to a weak or badly seeded generator: containers starting from an identical image and seeding from the clock, an embedded device with no entropy at boot, a library that fell back to `Math.random`. The mathematics is not the risk; the source is.
A random UUID as a primary key spreads inserts uniformly across the index, which is the opposite of what a B-tree wants — every insert touches a different page, the cache stops helping, and the index fragments. On a large table that is a measurable and well-documented cost.
The usual answers are a time-ordered UUID such as version 7, or a separate sequential key with the UUID kept as an external identifier. It is worth deciding deliberately rather than discovering it at scale, because changing a primary key type later is among the more expensive migrations there is.
They come from crypto.randomUUID, which draws on your operating system cryptographic entropy. That is the same source used for session tokens and keys. Where the browser does not offer it, this page stops rather than falling back to Math.random, because a weak UUID is indistinguishable from a strong one.
Nothing, in practice. GUID is Microsoft name for the same 128-bit identifier, and the two terms are interchangeable. The only difference you will meet is formatting: Windows tooling often wraps them in braces, which the validator here accepts.
Not realistically. There are 2^122 possibilities, and reaching a one-in-a-billion chance of any collision would take generating a billion per second for a month. The real risk is never the mathematics — it is a weak random source, which is why this uses the platform one.
Only for things that are not very sensitive. A version 4 UUID is unguessable, but it is not secret: it travels in URLs, logs, referrers and screenshots. Fine as a share link for a document; wrong as the only thing protecting personal data.
No. They are produced in your browser and never sent, so there is no copy of them anywhere but your clipboard. Nothing about generating a hundred of them touches a server, which is also why there is no limit worth enforcing beyond keeping the output readable.