Извините, но в соответствии с документацией функция случайного выбора добавляется автоматически.
Обычно вы не должны пытаться придумать свои собственные алгоритмы для рандомизации вещей, так как они, скорее всего, будут предвзятыми. Известно, что алгоритм Фишера-Йейтса эффективен и беспристрастен:
function fisherYatesShuffle(&$items, $seed)
{
@mt_srand($seed);
$items = array_values($items);
for ($i = count($items) - 1; $i > 0; $i--)
{
$j = @mt_rand(0, $i);
$tmp = $items[$i];
$items[$i] = $items[$j];
$items[$j] = $tmp;
}
}
Та же функция для строки в php7
function fisherYatesShuffle(string &$items, int $seed)
{
@mt_srand($seed);
for ($i = strlen($items) - 1; $i > 0; $i--)
{
$j = @mt_rand(0, $i);
$tmp = $items[$i];
$items[$i] = $items[$j];
$items[$j] = $tmp;
}
}