配列内のデータをシャッフルする


動作ブラウザ 【 IE:3.0  NN:2.0
Internet Explorer Netscape Navigator Opera iCab Safari
3.0x 4.0x 4.5 5.0x 5.5 6.0 2.0x 3.0x 4.0x 4.x 6.0 7.0 6 7 2.x 1.x
Windows - -
Macintosh -
UNIX - - - - - - - -

ポイント
n1 = Math.floor(Math.random() * 52);
n2 = Math.floor(Math.random() * 52);
n = data[n1];
data[n1] = data[n2];
data[n2] = n;

説  明 配列内のデータをシャッフルするには、乱数を使って回数分だけ配列内容を入れ替えます。サンプルでは52枚のトランプに数字が割当られているものとし100回シャッフルしています。
サンプル
<html>
<head>
<title>シャッフル</title>
</head>
<body>
<script language="JavaScript"><!--
data = new Array();
for (i=0; i<52; i++) data[i] = i;
for (i=0; i<100; i++) // 100はシャッフルする回数
{
n1 = Math.floor(Math.random() * 52);
n2 = Math.floor(Math.random() * 52);
n = data[n1];
data[n1] = data[n2];
data[n2] = n;
}
// 結果表示
for (i=0; i<52; i++) document.write(data[i]+"<br>");
// --></script>
</body>
</html>

補足説明 なし

■サンプルスクリプトを実行する >>実行
■各ブラウザでの動作結果を見る >>View!

写真素材 PIXTA