Most computer scientists will call such algorithms ‘pseudorandom number generators’ instead, recognizing that algorithms run on deterministic machines cannot produce truly random numbers. There are lots of techniques for creating pseudo-random numbers and some of them can give good approximations of randomness; but every one of them will, given enough time, begin to repeat the exact same sequence of random numbers. For SHA1, for instance, that repetition starts after 2^160 random numbers are generated. This is why, as others said above, when security is on the line we use true random number generators which draw on system information (temperature sensors, etc) as sources of entropy.