Sub Melange()
Dim Wsh As Worksheet, TNoms(), TAl() As Long, TRésu(), P&, R&, L&
Randomize
For Each Wsh In ActiveWorkbook.Worksheets
TNoms = Wsh.[A2].Resize(Wsh.Cells(2 ^ 20, "A").End(xlUp).Row - 1).Value
ReDim TAl(1 To UBound(TNoms, 1)), TRésu(1 To UBound(TNoms, 1), 1 To 1)
TAl(1) = 1
For P = 2 To UBound(TAl): R = Int(Rnd * P) + 1: If R < P Then TAl(P) = TAl(R)
TAl(R) = P: Next P
For P = 1 To UBound(TRésu, 1)
L = TAl(P): TRésu(L, 1) = TNoms(P, 1)
Next P
Wsh.[G2].Resize(2 ^ 20 - 1).ClearContents
Wsh.[G2].Resize(UBound(TRésu, 1)).Value = TRésu
Next Wsh
End Sub