In addition to combinatorial/hypergeometric approach in my comment: By simulation, the probability of a number higher than 95, out of 23 draws without replacement from among numbers $1,2,3,\dots,94,96,97,98,99,$ is $0.663\pm 0.001.$
set.seed(2020)
mx =replicate(10^6, max(sample(c(1:94,96:99), 23)))
mean(mx > 95)
[1] 0.663096
2*sd(mx > 95)/1000
[1] 0.000945304
Unconditionally, the chances the highest number out of $1,2,3,\dots,99$ exceeds 95 is $0.677\pm0.001$ by simulation. [The probability is a little larger because the guest in question also might have gotten a number above 95.]
set.seed(928)
mx = replicate(10^6, max(sample(1:99, 24)))
mean(mx > 95)
[1] 0.677377 # aprx P(max nr > 95)
2*sd(mx > 95)/1000
[1] 0.0009349601 # aprx 95% margin of simulation err
Note: A somewhat related combinatorial problem, also easily handled by simulation, is the (very low) probability of winning frustration solitaire.