Du vill bara välja antal namn en gång? Dvs både Kalle och nisse skall komma 10 gånger?
Jag skulle skriva varje namn 10 ggr och sedan skapa ett slumptal i kolumnen bredvid. Sen kan du sortera efter slumpkolumnen..
Ett onödigt omständigt exempel
Sub randNamn()
Dim rCellMedAntal As Range
Dim rNamn As Range
Dim iAntalRep As Integer
Dim iAntalSlumpade_namn As Integer
Dim i As Integer
Dim rMål As Range
'Bestäm var du hämtar antal repetitioner:
Set rCellMedAntal = Worksheets("blad1").Range("C1")
'Bestäm var namnen börjar
Set rNamn = Worksheets("blad1").Range("A2")
'Bestäm var du vill peta in namnen
Set rMål = Worksheets("blad2").Range("A1")
' fyll startvärden för variabler
iAntalRep = rCellMedAntal.Value
iAntalSlumpade_namn = 0
'Rensa bort gammalt skräp i målkolumnen
rMål.EntireColumn.Clear
'kickar igång slumptalsgeneratorn. Så att rnd inte startar på samma ställe hela tiden:
Randomize
'Yttre loop (doo...loop). Går igenom namnlistan rad för rad tills det kommer en tom cell
Do
' inrne loopen (For i....). skriver det aktuella namnet X-antal gånger, förskjuter sig en rad i taget jämfört med startpunkten. Skriver även slumptal i cellen till höger om namnet
For i = 0 To iAntalRep - 1
rMål.Offset(iAntalSlumpade_namn, 0).Value = rNamn.Value
rMål.Offset(iAntalSlumpade_namn, 1).Value = Rnd
iAntalSlumpade_namn = iAntalSlumpade_namn + 1
Next i
Set rNamn = rNamn.Offset(1, 0)
Loop Until rNamn.Value = ""
' Väljer en cell i målområdet (sorteringen får alltid problem annars)
rMål.Offset(0, 1).Select
'Kickar igång en sortering efter slumptalet i kolumn B
With ActiveWorkbook.Worksheets(rMål.Parent.Name).Sort
.SortFields.Clear
.SortFields.Add Key:=rMål.Offset(0, 1).Resize(iAntalSlumpade_namn, 1), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
.SetRange rMål.Resize(iAntalSlumpade_namn, 2)
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
'radera slumptalet om du vill
rMål.Offset(0, 1).EntireColumn.Clear
End Sub