Okay thanks! So far that makes sense but I'm still a bit unclear...
The public and private keys are both generated offline. So even before I generated the wallet, this public address already exists and coins can already be sent to it? But I am the only one who can prove ownership of these coins how? Simply because I am the one who holds this particular private key that is associated with the public key? If so, what is preventing someone else who is also creating a wallet at the same time from generating the same keys? Just mathematical improbability? I think this is what I really don't understand. Thanks all!