I disagree here. 3 points:
* This was added from an API point of view. Generating a random UUID is probably the most common operation that's done with UUIDs and it should be useable in `@safe` code as there's absolutely nothing unsafe about a random UUID. (Otherwise that's a phobos bug)
* We actually have a reason to trust `rndGen`. `@trusted` can be used when code that is otherwise unsafe is known to be used only in a safe way. A safe or trusted function means, AFAIK, that you can not make the function memory-unsafe by giving it any kind of wrong parameters. There's no way to influence `randomUUID` from outside, no parameters, no global state so there's no way to provide invalid parameters to it. The same is true for `rndGen`. So `rndGen` being unsafe could only mean that it might be memory-unsafe but the user of the API can't influence that from the outside. But then it's a useless function if you can't trust it to produce deterministic results. So in the end I think `rndGen` must actually be safe or trusted and these attributes just weren't added to std.random yet.
* Even if we'd agree that this function should be safe we probably can't change it now. It's a huge API breakage and this function has been around for some time now.