Unlike email accounts and passwords, in Bitcoin no two public keys can share the same private key because the public key is derived from the private key mathematically.

It's true you could generate private keys at random and check their corresponding public addresses for unspent bitcoins. And if you found any, you could spend them since you'd have the private key. If it was at all feasible to find and spend other users' bitcoins this way, the Bitcoin ledger would be useless. So the set of possible keys was made intentionally enormous as to make such random searching infeasible and pointless even if extremely powerful computers were used to perform these searches for centuries.

Here's a great video on this topic:

http://youtu.be/ZloHVKk7DHk