配列シャッフル 2

ランダム番目の子要素を一個取り出し、配列末尾に追加しリバース。元の配列は破壊される。

JavaScript

var myArray = [0, 1, 2, 3, 4, 5, 6, 7, 8,9];

function shuffle(a) {
    var pool;
    var target;
    var len = a.length;
    for (i = 0; i < len*10; i++) {
        target = Math.floor(Math.random() * len);
        pool = a[target]; //要素一個取得
        a.splice(target, 1); //取得したヤツを元の配列から削除
        a.push(pool); //ケツに追加
        a.reverse(); //ひっくり返す
    }
    return a; //返す
}

//test
var Shuffled = shuffle(myArray);
document.write(Shuffled);