# rand

(PHP 4, PHP 5, PHP 7, PHP 8)

rand — Erzeugt eine zufällige Zahl

### Beschreibung

rand(): int
rand(int `$min`, int `$max`): int

Gibt eine Pseudozufallszahl zwischen `min` und `max` (inklusive) zurück oder zwischen 0 und getrandmax(), falls keine Parameter angegeben wurden. Wenn z. B. ein Zufallswert zwischen 5 und 15 benötigt wird, so wäre der Aufruf dafür `rand(5, 15)`.

Achtung

Diese Funktion erzeugt keine kryptografisch sicheren Werte und darf nicht für kryptografische Zwecke verwendet werden oder für Zwecke, bei denen die zurückgegebenen Werte nicht abschätzbar sein dürfen.

Falls kryptographisch sichere Zufallszahlen benötigt werden, kann der Random\Randomizer mit der Random\Engine\Secure-Engine verwendet werden. Für einfache Anwendungsfälle bieten die Funktionen random_int() und random_bytes() eine bequeme und sichere API, die den CSPRNG des Betriebssystems verwendet.

> Hinweis: Vor PHP 7.1.0 war getrandmax() auf manchen Plattformen (z. B. Windows) nur 32767. Wenn ein größerer Wertebereich benötigt wird, kann entweder ein größerer `max`-Wert übergeben werden oder es kann stattdessen die Funktion mt_rand() verwendet werden.

> Hinweis: Ab PHP 7.1.0 verwendet rand() denselben Zufallszahlengenerator wie mt_rand(). Um die Abwärtskompatibilität zu wahren, erlaubt rand(), dass `max` kleiner als `min` ist, ohne wie mt_rand() `false` zurückzugeben.

### Parameter-Liste

`min`

  Der niedrigste zurückzugebende Wert (Vorgabe: 0)

`max`

  Der höchste zurückzugebende Wert (Vorgabe: getrandmax())

### Rückgabewerte

Ein Pseudozufallswert zwischen `min` (oder 0) und `max` (oder getrandmax(), inklusive).

### Changelog

Version | Beschreibung
--- | ---
7.2.0 | rand() erhielt einen Bugfix für einen Modulus-Verzerrungsfehler. Das bedeutet, dass sich Folgen mit einem bestimmten Startwert ab PHP 7.1 auf 64bit-Rechnern unterscheiden können.
7.1.0 | rand() ist nun ein Alias von mt_rand().

### Beispiele

Beispiel #1 rand()-Beispiel

`<?php
echo rand(), "\n";
echo rand(), "\n";
echo rand(5, 15), "\n";
?>`

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

    7771
    22264
    11

### Anmerkungen

Warnung

Der Bereich zwischen `min` und `max` muss innerhalb von getrandmax() liegen, d. h. (`max` - `min`) <= getrandmax(); ansonsten wird rand() möglicherweise Zufallszahlen schlechter Qualität zurückgeben.

### Siehe auch

- srand() - Legt den Anfangswert für den Zufallsgenerator fest
- getrandmax() - Liefert die größtmögliche Zufallszahl
- mt_rand() - Erzeugt eine Zufallszahl nach dem Mersenne-Twister-Verfahren
- random_int() - Get a cryptographically secure, uniformly selected integer
- random_bytes() - Get cryptographically secure random bytes

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open