Sometimes we need to help `Dynamics` to realize that they are out of date, `FinishDynamic[]` serves that purpose.

This works well:

    If[
       x === k, 
       display = "Correct"; FinishDynamic[]; Pause[1];  display = rand
    ]