My latest answer: SetRandSeed(GetTick); x := Random mod y; This will return an answer between 0 to y-1, which is what I want. Now everything looks simple enough.