Questo sara piu semplice :

codice:
Dim incontri(1 To 20) As String
Dim archivio, archivio2, ritorno1 As String
Dim usciti(1 To 380), usciti2(1 To 380), usciti3(1 To 21) As Byte
Dim o, k, y, p As Integer
incontri(1) = "JUVENTUS": incontri(2) = "INTER"
incontri(3) = "LECCE": incontri(4) = "CATANIA"
incontri(5) = "MILAN": incontri(6) = "UDINESE"
incontri(7) = "LAZIO": incontri(8) = "REGGINA"
incontri(9) = "ROMA": incontri(10) = "PALERMO"
incontri(11) = "CHIEVO": incontri(12) = "NAPOLI"
incontri(13) = "ATALANTA": incontri(14) = "CAGLIARI"
incontri(15) = "TORINO": incontri(16) = "SIENA"
incontri(17) = "SAMPDORIA": incontri(18) = "BOLOGNA"
incontri(19) = "FIORENTINA": incontri(20) = "GENOA"
k = Int(Rnd * 19 + 1)
r = Int(Rnd * 19 + 1)
Randomize
p = 0
o = 0
y = 1
i = 0
trovato = False
Do
    For y = 1 To i
        Select Case k
        Case k = usciti(y) Or r = usciti2(y)
        trovato = True
        Case r = usciti(y) Or k = usciti2(y)
        trovato = True
        Case k = usciti(y) And r = usciti2(y)
        trovato = True
        Case r = usciti(y) And k = usciti2(y)
        trovato = True
        End Select
        If k = r Then
        trovato = True
        End If
    Next y
    For y = 1 To 20
    If k = usciti3(y) Or r = usciti3(y) Then
    trovato = True
    End If
    Next y
    If trovato = False Then
    i = i + 1
    o = o + 1
    p = p + 1
    usciti(i) = k
    usciti2(i) = r
        If p < 21 Then
        usciti3(p) = k
        usciti3(p + 1) = r
        Else
        p = 0
        End If
    End If
    If o >= 10 Then
    o = 0
        For v = 1 To 20
        usciti3(v) = 0
        Next v
    End If
k = Int(Rnd * 19 + 1)
r = Int(Rnd * 19 + 1)
trovato = False
Loop Until i = 380