From: R0b0t1
In linux, there is /dev/random which provides totally random output. In Windows, if you perhaps picked a random box (coords from the regular random function) and then picked the x, yth location (coords from regular random function, again…) you'd probably get completely random input (mathematically, anyway).
Or, you could count the micro-seconds between keypresses and use the smaller (ones and tens place, etc) numbers.
Programming logic is static, the only source of truly random numbers is from quantum decay. As Wizzup said, two psuedo random number are not equal to a truly random number.
Generally we shoot for "Good enough" as far as randomness goes. We have some pretty good psuedo-random number generators (see Mersenne Twister) that work well for places that need really random numbers (statistical analysis, cryptography). However, since most here aren't concerned with much more then making a realistic bot, the psuedo random number generator provided by most languages is almost certainly enough (so long as a new seed is assigned each run of the application. It would be bad if you used the same seed as that would produce identical clicking… Not good)
Any good 2d random algorithm is good enough for botting. (see wikipedia article on psuedo random number generators)