Which version should I use?
Version 4 unless you have a specific reason otherwise — it is random, unguessable and carries no information. Choose version 7 if these identifiers will be primary keys in a database, because time-ordered keys keep the index tidy while random ones fragment it. Choose version 5 only when the same input must always produce the same identifier. Choose version 1 only when something you cannot change insists on it.
Is a UUID and a GUID the same thing?
Yes. GUID is Microsoft's name for the same 128-bit identifier, and the two words are interchangeable. The only thing that ever differs is the formatting convention — braces around it, or uppercase letters — which is why both are offered here as output formats rather than as different kinds of identifier.
Can two UUIDs ever collide?
In principle yes, in practice no, for version 4. With 122 random bits you would need to generate about a billion a second for roughly 85 years to reach a 50% chance of a single collision. Version 5 is different by design: identical inputs always produce identical output, which is the point rather than a flaw.
Are these generated on a server?
No, and it matters more here than it looks. An identifier generated on somebody else's machine is an identifier they have seen, which is a poor start for anything that is meant to be unguessable — a password-reset token, an invitation link, an unlisted resource. These come from your own browser's cryptographic source, and nothing is transmitted.
Is version 7 safe to use yet?
Yes. It was standardised in RFC 9562 in May 2024, and it is supported by current versions of PostgreSQL, MySQL and every major language's UUID library. The time ordering is its whole reason to exist, and it is worth noting it also means a v7 identifier reveals roughly when it was created — which is fine for a database key and wrong for anything that should be opaque.