100 Prisoners and a light bulb
Python 2, 133 bytes
I used binary operations to keep track. I had if(i&lt;1)*b:... but I think that's an off-by-one error. Not sure.

from random import*
L=2**99-1
b=l=c=0
while l&lt;99:
    i=randint(0,99)
    if(i&gt;98)*b:b=0;l+=1
    elif(L&amp;1&lt;&lt;i)*(b&lt;1):b=1;L|=1&lt;&lt;i
    c+=1
print c

Try it online
Less golfed:
from random import*
L=[1for _ in range(100)]
b=l=c=0
while l&lt;99:                         # check leader's count of prisoners
    i=randint(0,99)
    if b and i==99:b=0;l+=1         # if light on and leader, turn off and count
    elif L[i] and b&lt;1:b=1;L[i]=0    # else if new prisoner and light off, turn on
    c+=1                            # iterations
print c