Ok, mira te he hecho un ejemplo utilizando mi clase
cCollectionEx, dime si es lo que buscas, en tal caso solo tendrias que hacer pequeñas modificaciones:
Option Explicit
Option Base 1
Private Sub Form_Load()
Dim cTemp(3) As New cCollectionEx
Dim x As Long, y As Long, n As Long, i As Long
For x = 1 To 3
For y = 1 To 5
Repeat:
i = x
n = RndNum(0, 15)
Do
If cTemp(i).Contains(n) Then GoTo Repeat
i = i - 1
Loop While i > 0
cTemp(x).Add n
Next
Next
'OffTopic : ¡Vivan las ranas! :D
For x = 1 To 3
Debug.Print "------------------------------------------------"
Debug.Print "Contenido de cTemp(" & x & ")"
For y = 1 To cTemp(x).Count
Debug.Print cTemp(x).Item(y)
Next
Debug.Print "------------------------------------------------"
Next
End Sub
Public Function RndNum(ByVal lMinLimit As Long, ByVal lMaxLimit As Long) As Long
Randomize
RndNum = CLng((lMinLimit - lMaxLimit + 1) * Rnd + lMaxLimit)
End Function
Me devuelve esto (Como puedes observar sin repeticion alguna

):
------------------------------------------------
Contenido de cTemp(1)
10
12
15
9
14
------------------------------------------------
------------------------------------------------
Contenido de cTemp(2)
11
8
2
6
3
------------------------------------------------
------------------------------------------------
Contenido de cTemp(3)
13
4
5
1
7
------------------------------------------------
Espero que te sirva al menos de guia...
DoEvents¡! 