Трудно понять, почему вы не получаете уникальные целые числа, поскольку код выглядит так, как будто он должен работать, но вот альтернативный подход, который немного проще.
$randomOffset = rand(1,$count-1) ;
$session->set(
"randomImage" ,
($session->get("randomImage") + $randomOffset) % $count
) ;
%
, это оператор по модулюТаким образом, мы выполняем арифметику циферблата для «clock» с $ count «hours».Смещение ограничено, чтобы быть меньше, чем полное «вращение», поэтому мы никогда не сможем вернуться к тому же «часу» на «часах», но мы можем перейти к каждому другому часу с равномерно случайным шансом каждого.
Я подозреваю, что ваша проблема может быть где-то еще в вашей кодовой базе, однако.