Есть действительно много способов сделать то, что вы просите.
Одним из самых простых является применение теории хеширования с использованием следующего незваного числа в качестве следующего (псевдо) случайного числа.
Я предполагаю, что то, что вы написали в своем коде, не имеет особого смысла, поэтому, чтобы следить за тем, что будет дальше, я предполагаю, что A1 заполняется числами 1-10, а вы заполняете A2 непосредственно перемешанными числами.
Пример:
это текущее состояние вашего A2. Следующее выбранное случайное число - 1, но это плохо, если оно уже выбрано.
A1 |1 2 3 4 5 6 7 8 9 10|
A2 |1 4 7 9 . . . . . . |
Поэтому, когда «столкновение» будет найдено, продолжайте применять это исправление:
новое случайное число становится x = x + 1, пока не будет выбрано не выбранное число.
Итак
A1 |1 2 3 4 5 6 7 8 9 10|
A2 |1 4 7 9 2 . . . . . |
Как вы можете себе представить, существует множество политик коллизий, которые вы можете использовать, предыдущая называется открытой адресацией.