Чтобы расположить элементы массива в случайном порядке можно создать массив и заполнить его случайными числами. Затем отсортировать массив по возрастанию, одновременно переставляя элементы исходного массива:
Private Sub Command1_Click() Dim a(10) As Integer ' Заполняем массив a значениями For i = 0 To 10 a(i) = i Next ' Сортируем массив в произвольном порядке RandomSort a ' Выводим отсортированные элементы массива For i = 0 To 10 MsgBox a(i) Next End Sub Private Sub RandomSort(m()) Dim n As Integer Dim i As Integer, j As Integer Dim mRnd() As Integer ' Получем количество элементов в массиве m n = UBound(m) ' Изменяем размерность массива mRnd ' в соответствии с размерностью исходного массива m ReDim mRnd(n) ' Запускаем генератор случайных чисел Randomize Timer ' Заполняем массив mRnd произвольными значениями For i = 0 To n mRnd(i) = Int(Rnd * 10000) Next ' Сортируем массив mRnd по возрастанию, ' одновременно меняя местами элементы массива m For i = 0 To n - 1 For j = i + 1 To n If mRnd(j) < mRnd(i) Then Swap mRnd(j), mRnd(i): Swap m(j), m(i) Next Next End Sub ' Процедура, меняющая местами переменные a1 и a2 Private Sub Swap(a1, a2) Dim c c = a1 a1 = a2 a2 = c End Sub