To add "visuals", it is actually creating some form delay. I use a separate function to create the delay, and make it generate lots of random numbers before displaying results.

Sub YourLottery()

    Const l& = 1 'lower value
    Const u& = 53 'upper value
    Const n& = 6 'number of numbers per draw
    Dim a(), b() As Boolean
    Dim rws&, i&, x&, k&, j&, j2&
    rws = 100 'number of lottery draws
    ReDim a(1 To rws, 1 To n)
    
    Randomize
    For i = 1 To rws
        Cells(i, 1).Value = "Draw " & i
        
        ReDim b(l To u): k = 0
        Do
            x = Int(Rnd * u) + l
            If Not b(x) Then k = k + 1: b(x) = True
        Loop Until k = n
        
        For j = 1 To 50
            For j2 = 1 To n
                Cells(i, 2 + j2).Value = Int(Rnd * u) + l
            Next
            Delay 0.01
        Next
        
        k = 0
        For x = l To u
            If b(x) Then k = k + 1: Cells(i, 2 + k).Value = x
        Next x
    Next i
End Sub



Private Function Delay(secs As Variant)
    On Error GoTo Err_Pause
    Dim PauseTime As Variant, start As Variant
    PauseTime = secs
    start = Timer
    Do While Timer < start + PauseTime
        DoEvents
    Loop
Exit_Pause:
    Exit Function
Err_Pause:
    MsgBox Err.Number & " - " & Err.Description, vbCritical, "Delay()"
    Resume Exit_Pause
End Function