Sembra tanto un compitino di scuola...
Scambiale di posto con un Generatore casuale di Numero e passa al singolo Item il nuovo Indice...
Questa funzione Muove l'Item
Private Function MoveListboxItem(List1 As ListBox, CurrentIndex As Integer, NewIndex As Integer)
Dim strItem As String
If List1.ListCount = NewIndex Or NewIndex = -1 Then Exit Function
strItem = List1.List(CurrentIndex)
List1.RemoveItem CurrentIndex
List1.AddItem strItem, NewIndex
List1.ListIndex = NewIndex
End Function
Ora fai attenzione che Generare tanti numeri Casuali quanti sono gli Items non è sufficiente...