Public and private keys do not even have to be the same to generate the same bitcoin address.
There are 2^256 private keys, that create 2^256 public keys. BUT there are only 2^160 possible bitcoin addresses. So on average there are 2^96 (=79228162514264337593543950336) private keys that generate the SAME address.
If (and when) an address collision will happen, then it is much more likely that it will happen with different public&private key pairs than it being with two exactly same keys.