mt_rand() gibt immer selbe Zufallszahl aus

Hallo,
ich möchte einige Bilder zufällig zusammenstellen in einer Galerie. Dafür wollte ich mt_rand() einsetzen. Leider geben mir sowohl rand(1,15) als auch mt_rand(1,15) immer nur Zahlen zwischen 1 und 5 aus, die Zahlen 6-10 bleiben leider außen vor. Ich habe es sogar schon mit einer „Endlosschleife“ (
[PHP]
while ($zufall <= 5) {
$zufall = mt_rand(1,15);
}
[/PHP]
) getestet, dabei lief das ganze so lange bis ich abgebrochen habe.
Gibt es denn noch andere Methoden, eine Zufallszahl zu generieren? Ich hatte ich meinte mal irgendwo gelesen, dass man anhand der Zeit in Mikrosekunden seit Programmbeginn recht gute Zufallszahlen generieren kann, habe aber leider überhaupt keine Idee wie man das in PHP realisiert. :frowning:
Viele Grüße!

Was erwartest du bei
[PHP]while ($zufall <= 5)[/PHP]

Dass die Schleife so lange durchläuft, bis auch mal eine Zahl größer als 5 herauskommt. War ja auch nur eine Testschleife, das Problem bestand schon vorher :confused:

Ich denke mal, du gehst das Problem im Allgemeinen falsch an. Wo kommen die Bilder her? Liest du ein Verzeichnis aus, oder hast du Einträge in einer DB? Erkläre dein Vorhaben mal genauer.

Warum schreibst du überhaupt mt_rand(1, 15) wenn du keine Zahlen zwischen 1 und 5 haben willst? Schreib doch einfach gleich mt_rand(6, 15).

Mal ganz davon abgesehen solltst du uns, wie bdt600 schon gesagt hat genau beschreiben, was du gerade versuchst zu erreichen. So wie es klingt versuchst du unnötige sachen zu machen also besteht eine sehr große Chance, dass wir dir eine menge arbeit erspaaren können.

Also ich möchte aus einem Ordner mit durchnummerierten Bildern eine zufällige Auswahl ausgeben. Bislang klappt alles soweit, bis auf das, dass mir mt_rand(1,15) nur Zahlen zwischen 1 und 5 ausgibt und somit manche Bilder doppelt, manche gar nicht.
Natürlich möchte ich auch welche unter 5 haben, aber da bislang ausschließlich solche ausgegeben wurden, habe ich mal zum Testen diese Schleife geschrieben, ob denn nach dem 100sten mal endlich was über 5 rauskam. Aber es kam nie etwas über 5 heraus. Auch nach Neustarten des „Servers“.
Aber hier dennoch mal mein Vereinfachter Code…
[PHP]$zahl = mt_rand(1,15);
echo $zahl;[/PHP]
Und nochmal: Egal wie oft ich neulade, es kommt immer eine Zahl zwischen 1 und 5 heraus…

Wie erwartet, zu kompliziert, das geht einfacher:
[PHP]<?php
$files = glob(„./images/*“);

shuffle($files);

$count = (count($files) < 5) ? count($files) : 5;

for ($i = 0; $i < $count; $i++)
echo $files[$i] . „
“;
?>[/PHP]