hola , mira yo tengo hecho algo parecido , lo que hago basicamente es asignar un número correlativo a cada fila , luego genero números aleatorios entre 1 y la cantidad de datos, a continuación con la formula buscarv extraigo los datos que me interesan
la macro es la siguiente:
Range("B7:F30000").Select 'rango de los resutados de la muentra
Selection.ClearContents ' limpio las celdas
For i = 6 To Range("d4").Value + 6 ' en d4 tengo la cantidad de la muestra
Cells(i, 2).Select ' seleccione desde la fila 6
aleatorio = Int((Range("F4") * Rnd) + 1) ' arroja el numero aleatoreo
ActiveCell.Value = aleatorio ' asigna el numero a la celda
Next
Range("C6:f6").Select ' rango donde tengo la formula buscarv
Selection.Copy
Range("b6").Select
Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 1).Select ' copio la formula a las filas que tengan datos
ActiveCell.Select
ActiveSheet.Paste
ActiveCell.Offset(0, -1).Select
Loop
ActiveCell.Clear
ActiveCell.Offset(0, 1).Select
ActiveCell.Clear
ActiveCell.Offset(0, 1).Select
ActiveCell.Clear
ActiveCell.Offset(0, 1).Select
ActiveCell.Clear
ActiveCell.Offset(0, 1).Select
ActiveCell.Clear
Range("b6").Select
End Sub
el único problema (que no he buscado solucion aún) , es que me puede entregar muestar repetidas.
verlo asi es un poco complicado , pero si deseas me das un e-mail y te envio el ejemplo.