Wie „gut“ ist diese Methode zur Erzeugung von Zufallszahlen?

Ich suchte auf Google nach RNGCryptoServiceProvider mit Beispielen, wie man den Bereich zwischen Max und Min einschränkt und trotzdem eine gleichmäßige Verteilung erhält. Bevor ich den Modulo-Operator verwendet habe, erhalte ich manchmal seltsame Werte (über Max) ... Trotzdem wird dieser Code (Gutschrift auf unbekannt) bei jedem Aufruf der Methode zufällig mit einem neuen Startwert von RNGCCryptoServiceProvider erstellt. Was denkt ihr?

public static int GetRandom(int min, int max)
{
  byte[] b = new byte[sizeof(int)];
  new System.Security.Cryptography.RNGCryptoServiceProvider().GetBytes(b);
  int i = BitConverter.ToInt32(b, 0);
  Random r = new Random(i);
  return r.Next(min, max);
}

Antworten auf die Frage(3)

Ihre Antwort auf die Frage