配列シャッフル 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);