>>370
どういう所まで勉強しているのか解らないので回答が難しいが、配列でそれをやるのは面倒だと思う(特に改良だと)
配列が10で1〜10の乱数であると仮定しておく。
int[] array = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
for(適当な回数) {
  // ランダムでi番目とj番目をスワップ
}
が一番簡単な方法かと思うぞ

強引にやるならば、確定した所まで重複チェックして、重複していたら乱数を入れなおす・・・ってのも出来るけど、激しくバカらしい