class Random

Random bietet eine Schnittstelle zum Pseudo-Zufallszahlengenerator (PRNG) von Ruby. Der PRNG erzeugt eine deterministische Bitfolge, die echte Zufälligkeit annähert. Die Sequenz kann durch ganze Zahlen, Gleitkommazahlen oder Binärzeichenketten dargestellt werden.

Der Generator kann mit einem systemgenerierten oder einem vom Benutzer bereitgestellten Startwert initialisiert werden, indem Random.srand verwendet wird.

Die Klassenmethode Random.rand bietet die Grundfunktionalität von Kernel.rand zusammen mit einer besseren Handhabung von Gleitkommawerten. Beides sind Schnittstellen zum Ruby-System-PRNG.

Random.new erstellt einen neuen PRNG mit einem Zustand, der unabhängig vom Ruby-System-PRNG ist, und ermöglicht so die gleichzeitige Existenz mehrerer Generatoren mit unterschiedlichen Startwerten oder Sequenzpositionen. Random-Objekte können gemarsht werden, was das Speichern und Wiederaufnehmen von Sequenzen ermöglicht.

PRNGs werden derzeit als modifizierter Mersenne Twister mit einer Periode von 2**19937-1 implementiert. Da dieser Algorithmus **nicht** für kryptographische Zwecke geeignet ist, müssen Sie für Sicherheitszwecke stattdessen SecureRandom anstelle dieses PRNG verwenden.

Siehe auch das Modul Random::Formatter, das Komfortmethoden zur Generierung verschiedener Formen von Zufallsdaten hinzufügt.