Hi there,
Random works just fine and has no reliability issues that I know of.
I notice that Y is sometimes positive and sometimes negative but X is always negative - is that right? From your algorithm it should always be positive.
Also, how long before you notice that the X value is starting to tend towards zero?
Some ...