Can anyone explain to me why does the random statement corrupt the $answer
It doesn't. Your problem lies in some of the code that you haven't shown us. At a guess, my money is on the comparison itself, based on where I've seen other people report similar problems.
Can you pare your code down to a minimal (don't just post the whole program!), but complete, stand-alone example that we can run for ourselves which demonstrates the problem? That would allow us to answer definitively (because we can run your code, see it work incorrectly, then fix it, run it again, and see it work correctly), plus there's a very strong chance that you'll find the answer yourself in the process of trying to create the minimal example program.