In agreement eith Toddleson, you could have something like
In a normal module
Public arrPaint(4) As Excel.Range
Public intCounter As Integer
Public Function StartUp()
Set arrPaint(0) = Range("a1")
Set arrPaint(1) = Range("b2")
Set arrPaint(2) = Range("c3")
Set arrPaint(3) = Range("d4")
Set arrPaint(4) = Range("e5")
intCounter = 0
Application.OnTime Now + TimeValue("00:00:1"), "Tick"
End Function
Public Function Tick()
Dim tmNextRun As Date
tmNextRun = Now + TimeValue("00:00:01")
    If intCounter < 5 Then
        If intCounter > 0 Then arrPaint(intCounter - 1).Interior.Color = xlNone
        arrPaint(intCounter).Interior.Color = vbRed
        intCounter = intCounter + 1
        Application.OnTime tmNextRun, "Tick"
    Else
        arrPaint(intCounter - 1).Interior.Color = xlNone
    End If
    
End Function
and then deal with the user hits in the worksheet events, like so.
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If intCounter < 5 Then
        If Not Intersect(Target, arrPaint(IIf(intCounter > 0, intCounter - 1, 0))) Is Nothing Then
            Range("q1").Value = "HIT"
        Else
            Range("q1").Value = Target.Address
        End If
    End If
End Sub
A button calls start up and populates the cell ranges.  This can still be random, i did this for ease.
Hope this helps as a building block for you.
Thanks