Вы можете, вероятно, урезать некоторые строки из этого, но следующее делает трюк.
В первом цикле мы заполняем словарь (хеш-таблицу) только уникальными значениями RandNum
, затем перебираем этот словарь.
Sub RandomNumberColor()
Dim RandNum As Integer
Dim i As Integer
Dim MyRange As Range
Set dict = CreateObject("Scripting.Dictionary")
Set MyRange = Worksheets("Rnd").Range("A1:A50")
For i = 1 To MyRange.Rows.Count
RandNum = Int((10 - 1 + 1) * Rnd + 1)
Worksheets("Rnd").Cells(i, 1) = RandNum
Worksheets("Rnd").Cells(i, 1).Interior.ColorIndex = _
Worksheets("Rnd").Cells(i, 1).Value
If Not dict.Exists(RandNum) Then
dict.Add RandNum, RandNum
End If
Next i
i = 1
For Each key In dict.Keys()
Worksheets("Rnd").Cells(i, 2) = dict(key)
i = i + 1
Next
Set dict = Nothing
Set MyRange = Nothing
End Sub