I do not think this is more discoverable or more readable. I think I would much rather have a system to getting default values for any type as in C# default() ala default(RandomNumberGenerator)
but since we do know have that then it makes sence for this to live in Random since random implements the RandomNumberGenerator protocol
I do not like the idea of a static/singleton like shared
unless it is necessary (as in, would this be a class then or have reference semantics?) but in this case it seem to be just for the sake of longer naming.
Now, that being said, I do not see a problem having this in addition to Random.default