Рандомность нельзя разнообразить, т.к. в ней каждое следующее выпадающее число
никак не зависит от того, что выпадало ранее.
Интуитивно понятно, что хочется, чтобы каждое следующее число, скорее всего, отличалось бы от предыдущего чем больше, тем лучше. Но это уже не настоящая рандомность.
Можно сымитировать такое поведение. Проще всего жёстко запретить ближе, чем, допустим, 40 от предыдущего.
Значит, из отрезка значений выпадает отрезок длиной
40 + 1 + 40 = 81
Первый вызов вернёт честно-случайное
mt_rand(322, 595)
А следующий только
mt_rand(322, 514)
И надо будет его скорректировать, в зависимости от предыдущего. Грубо, так:
$a = 322;
$b = 595;
$m = 40;
// первый раунд
$rnd = mt_rand($a, $b);
$prev = $rnd;
// ... что-то происходит
// второй и последующие раунды
$rnd = mt_rand($a, $b - 2 * $m - 1);
if ($rnd > $prev - $m) $rnd += 2 * $m + 1;
if ($rnd > $b) $rnd -= ($b - $a);
$prev = $rnd;
// ...