Good question and one I do not have a great answer to. The answer is, it depends on what you want to do with the random number. Nothing in software is every truly random.
If you want to randomly display objects in your gameās worldspace you can get by with any random number generator. If you are drawing cards for a multiplayer game you want something not in the client (you could use a cloud function). If you are securing something or trying to generate secure keys you need a solution that cryptographically sound.
The SDK does not specifically offer this as there are other options already available.
For simple sudo randomness you can always use System.Random. However this is unsecure and not really random.
You may find references to RNGCryptoServiceProvider but this is obsolete.
BouncyCastle (used by Nethererum and Wallet Connect has a random number generator but there is some question about it being a software only solution. It is closer to random than plain System.Random.
.NET provides the RandomNumberGenerator. This is supposed to be cryptographically sound but is platform based. Implementations provided for this abstract class are marked with the UnsupportedOsPlatformsAttribute meaning it may not compile for some platforms.
Software only solutions are sudo random but not truly random. Truly random number generation depends on the introducing entropy which is usually provided by a hardware component.
Since Unity generates device specific builds you will need to explore how to implement secure random number generation for every build target you want to deploy to. iOS and Android both have good security.
You have sparked some curiosity in me to see what I else I can find for Unity on this topic.
Regards,
David