Estimar el numero ganador de una lotería como el chispazo es todo un reto no es tan fácil como parece tienes que calcular tablas de frecuencias y estadísticas generales y por bolas, cuantos días han pasado desde que salio por ultima vez el numero, cuantas veces ha caído en lunes, martes..., cuantas veces ha salido en cada mes y en cada año, frecuencia de pares, nones y primos así como la suma de los números y el largo de la cadena, para que puedas ganar en este tipo de juegos necesitas en el caso de chispazo jugar con una rueda de 19 números de 28 generados al azar, lo cual da 11628 combinaciones en estas combinaciones hay un 80% de probabilidades de que salga el numero ganador y aun así pierdes ya que el monto que ganas es un poco inferior a lo que pagas por las combinaciones, como quiera te paso este programa, es el más simple, hay más complicados como usar simulaciones de montecarlo, generación de números aleatorios con distribuciones normales inversas, poisson, hipergeometricas entre otras, en esta macro solo indica cual es numero mayor el sorteo y la macro te dará los números bajo una distribución normal, con una probabilidad de salida aleatoria.
Sub generar_aleatorios()
Dim unicos As New Collection
maximo = Application.InputBox("¿cual es el numero mayor?, espacio vacio para salir")
If maximo = Empty Then End
Set NUMEROS = Range("b2:f2")
For I = 1 To 5
otro:
Randomize: PROB = Rnd
NUMERO = Int(1 + PROB * (maximo - 1))
On Error Resume Next
If Err.Number > 0 Then GoTo otro
NUMEROS.Cells(1, I) = NUMERO
On Error GoTo 0
Next I
MATRIZ = NUMEROS
For I = 1 To 5
MATRIZ(1, I) = WorksheetFunction.Small(NUMEROS, I)
Next I
Range(NUMEROS.Address) = MATRIZ
Erase MATRIZ
Set NUMEROS = Nothing: Set unicos = Nothing
End Sub