>>624
public class ShuffleCard {
public static void main(String[] args) {
// 初期化
int[] card = new int[21];
for (int i = 0; i < card.length; i++) card[i] = i;
// シャッフル
for (int i = 0; i < 1000; i++) {
int rand1 = (int) (Math.random() * card.length);
int rand2 = (int) (Math.random() * card.length);
int box = card[rand1];
card[rand1] = card[rand2];
card[rand2] = box;
}
// 表示
for (int i = 0; i < card.length; i++)
System.out.printf("%02d ", card[i]);
System.out.println();
}
}

重複判定はしてません。
シャッフルの部分
// シャッフル
for (int i = 0; i < card.length; i++) {
int rand1 = (int) (Math.random() * card.length);
int box = card[rand1];
card[rand1] = card[i];
card[i] = box;
}
のほうが良いと思うんですが