Its impossible.
Not impossible, just highly improbable
-snip-
Do you worry about the air in your room spontainously moving into a corner leading to your suffocation? Its the same realm of "improbable". Calling it improbable will give people the wrong impression.
I am quite new to bitcoin, still reading the guide, and being puzzled about this. For example, if somebody just create one million private keys and run one million wallet programs at the same time, he would much likely receive some output that paid to one or more private keys (addresses maybe) he generated, and thus steals others' money
Could this be a problem?
A private key is a 256 bit binary number. When written in hexadecimal this comes to a 64-digit hexadecimal number, which in decimal is approximately 1.158 x 10^77. Each private key will produce a unique public key and corresponding bitcoin address. So there are 2^256 possible combinations of private key, public keys and bitcoin addresses.
No, due to the use of RIPEMD160 there are only 2
160 possible bitcoin addresses (of version 1).
To get an idea of the numbers we are dealing with consider the following.
The world's fastest super computer is currently capable of performaing 33.6 quadrillion (33.6 x 10^15) calculations per second. Even if we assume that this makes it possible to check one private key per calculation (the actual number will be less since checking whether a particular private key agrees with a given bitcoin address will need much more than one calcultion), it would need 3.45 x 10^60 seconds or 1.1 x 10^53 years to try all possible private keys. So to try and steal bitcoins that are at a particular address by trying all possible addresses, though theoritically possible is computationally infeasible.