コード例 #1
0
/**
 * 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;
}