どうも、ちょげ(@chogetarou)です。
Randomを使って配列(Array)をランダムに並び替えてシャッフルする方法を紹介します。
方法

Randomを使って配列(Array)をランダムに並び替えてシャッフルするには、フィッシャー–イェーツのシャッフルを使います。
まず、Randomのインスタンスを生成します。
そして、forループでフィッシャー–イェーツのシャッフルを実装します。
フィッシャー–イェーツのシャッフルに使うランダムなインデックスは、RandomのnextInt()で生成します。
//array=シャッフルする配列
Random random = new Random();
int index, temp;
for (int i = array.length - 1; i > 0; i--)
{
index = random.nextInt(i + 1);
temp = array[index];
array[index] = array[i];
array[i] = temp;
}
上記のforループは、対象の配列をランダムに並び替えてシャッフルします。
使用例
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
int[] numbers = new int[]{ 1, 2, 3, 4, 5, 6 };
shuffleArray(numbers);
for (int i : numbers) {
System.out.println(i);
}
}
private static void shuffleArray(int[] array)
{
int index, temp;
Random random = new Random();
for (int i = array.length - 1; i > 0; i--)
{
index = random.nextInt(i + 1);
temp = array[index];
array[index] = array[i];
array[i] = temp;
}
}
}
出力:
6
4
1
2
5
3
コメント