Se det så här:
rand() ger dig vilket nummer som helt
x%4 betyder ’restklass vid division med fyra’
Alltså 1%4 = 1, 2%4 = 2, 3%4=3, 4%4 = 0, 5%4 = 1, 6%4 = 2, ...
Tar man ett slumpat tal, vilket som helst, och kör restklass-operatorn så ändras värdet till ett slumpat tal mellan 0 och talet minus 1
(rand() % 4000) ger alltså ett slumpat tal mellan 0 och 3999
Kör du sleep med ett sådant värde kommer väntetiden variera mellan de värdena
Det blir inte 4000 varje gång