Extraer números aleatorios de un rango de números variables con macro
SIgue la continuación a mi pregunta anterior, donde la macro que me proporcionaron actúa tal cual como la pedí en la pregunta pasada, básicamente lo que hace la macro es extraer una cantidad de números que se le indica de un rango de números. Y lo hace de acuerdo a la fila donde esta pocisionado el cursor, osea si esta en la celda AW3, solo extrae los números de la fila 3 y así sucesivamente.
Ahora necesito que la macro actúe como lo esta haciendo, con la diferencia de que no extraiga los números fila por fila, si no que si yo selecciono según la foto adjuntada de la celda AW2:AW15 extraiga los números de todas esas filas y no uno por uno como lo hace la actual macro,
Adjunto foto del rango a manera de ejemplo y también la macro actual. Mil gracias

Macro:
Sub aleatorio_2()
'Por Dante Amor
Dim num As New Collection
On Error Resume Next
fila = ActiveCell.Row
ini = Columns("Q").Column 'columna inicial
fin = ini + Cells(fila, "AF").Value - 1 'columna final
col = Columns("AH").Column 'columna resultados
n = Cells(fila, "AG").Value
'
Do While num.Count < n
columna = WorksheetFunction.RandBetween(ini, fin)
valor = Cells(fila, columna).Value
num.Add Item:=valor, Key:=CStr(valor)
Loop
For i = 1 To num.Count
Cells(fila, col).Value = num(i)
col = col + 1
Next
MsgBox "Fin"
End Sub