模拟数据如下及结果如下:

VBA代码如下:
Sub Test()
Call NewRnd(5) '数字填几就是随机几个
End Sub
Sub NewRnd(ByVal n As Integer)
Dim i%, j%, t%, r&, RndNum&
r = Cells(Rows.Count, 1).End(xlUp).Row
arr = Range("a1:a" & r)
ReDim temp(1 To r) As String
For i = 1 To r
For j = 1 To i
If arr(i, 1) = temp(j) Then GoTo line1
Next
t = t + 1
temp(t) = arr(i, 1)
line1:
Next
ReDim brr(1 To n, 1 To 1) As String
For i = 1 To n
line2:
Randomize
RndNum = Int(t * Rnd) + 1
For j = 1 To i
If brr(j, 1) = temp(RndNum) Then
GoTo line2
End If
Next
brr(i, 1) = temp(RndNum)
Next
[b1].Resize(n) = brr
End Sub