Sub PopulatingArray() Dim i As Long For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row With Range(Cells(i, 2), Cells(i, Columns.Count).End(xlToLeft)) .Value = Resample(.Value) End With Next i End Sub Function Resample(data_vector) Dim i As Long, j As Long, t For i = UBound(data_vector, 2) To LBound(data_vector, 2) Step -1 j = Application.RandBetween(LBound(data_vector, 2), UBound(data_vector, 2)) t = data_vector(1, i) data_vector(1, i) = data_vector(1, j) data_vector(1, j) = t Next i Resample = data_vector End Function