Private Sub 洗牌(牌数 As Integer, 新数组() As Integer)
Dim 新牌(牌数 - 1) As Integer
For i = 0 To 牌数 - 1'按顺序排好的
新牌(i) = i + 1
Next i
已抽出牌数 = 0
剩余牌数 = 牌数
Do Until 剩余牌数 = 0
次序 = Int(剩余牌数 * Rnd)'在顺序牌中随机选取一张
新数组(已抽出牌数) = 新牌(次序)'将这张牌依次放入新序列
For i = 次序 To 剩余牌数 - 1'将顺序牌中此后各张前移一个位置
新牌(i) = 新牌(i + 1)
Next i
已抽出牌数 = 已抽出牌数 + 1
剩余牌数 = 剩余牌数 - 1
Loop
End Sub