/** * Shuffle with seed * @param array $arr * @param $seed * @return array */ function shuffle($arr, $seed = -1) { if ($seed == -1) { return $arr; } $mt = new MersenneTwister($seed); $new = $arr; for ($i = count($new) - 1; $i > 0; $i--) { $j = $mt->getNext(0, $i); $tmp = $new[$i]; $new[$i] = $new[$j]; $new[$j] = $tmp; } return $new; }