Генерация случайных чисел без повторов
Я создаю веб-сайт, который будет случайным образом отображать всплывающий список при каждом обновлении страницы. API поиска yelp возвращает 20 списков в массиве. Прямо сейчас я использую PHP-функцию rand (0,19) для генерации случайного списка при каждом обновлении страницы ($ business [rand (0,19)]).
Может ли кто-нибудь направить меня к более умному методу рандомизации? Я хочу показать все 20 списков один раз, прежде чем любой из них будет повторен. Каков предпочтительный метод для решения этой проблемы?
ответ ниже не работает, потому что числа воссоздаются каждый раз, когда я обновляю страницу. Я думаю, мне нужно сохранить, какие номера я уже использовал?
$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/>";
?>