Gerando números aleatórios sem repetições
Eu estou construindo um site que irá exibir aleatoriamente uma lista de yelp cada vez que a página é atualizada. O yelp search api retorna 20 listagens em uma matriz. No momento, estou usando a função do PHP rand (0,19) para gerar uma listagem aleatória toda vez que a página é atualizada ($ businesses [rand (0,19)]).
Alguém pode me indicar um método mais inteligente para randomizar? Eu quero mostrar todos os 20 anúncios uma vez antes de qualquer um deles ser repetido. Qual é o método preferido para lidar com esse problema?
a resposta abaixo não funciona porque os números são recriados toda vez que eu atualizo a página. Eu estou supondo que preciso armazenar quais números já usei?
$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/>";
?>