Generowanie liczb losowych bez powtórzeń

Buduję witrynę, która losowo wyświetla listę pomocy przy każdym odświeżeniu strony. Funkcja wyszukiwania api w oknach zwraca 20 wpisów w tablicy. Obecnie używam funkcji rand (0,19) PHP, aby generować losową listę za każdym razem, gdy strona jest odświeżana ($ firmy [rand (0,19)]).

Czy ktoś może polecić mi mądrzejszą metodę losowania? Chcę pokazać wszystkie 20 aukcji raz przed powtórzeniem któregokolwiek z nich. Jaka jest preferowana metoda radzenia sobie z tym problemem?

poniższa odpowiedź nie działa, ponieważ liczby są odtwarzane za każdym razem, gdy odświeżam stronę. Zgaduję, że muszę przechowywać numery, których już używałem?

$numbers = range(0, 19);

shuffle($numbers);
// Handle Yelp response data
$response = json_decode($data);
$RANDOM = rand(1,19);
$business = $response->businesses;

echo "<img border=0 src='".$business[$RANDOM]->image_url."'><br/>";
echo $business[$RANDOM]->name."<br/>";
echo "<img border=0 src='".$business[$RANDOM]->rating_img_url_large."'><br/>";

?>

questionAnswers(2)

yourAnswerToTheQuestion