If ANY of these values are different the hash will be different. Miners routinely attempt the same nonce. Your own individual miners will attempt the same nonce millions of times. The nonce is only 32 bit, there are only 4 billion possibilities. A KNC Jupiter for example will exhaust the nonce range in less than 1/100th of a second. Even a low end GPU will try all possible nonces (for a given blockheader) in a few seconds.
The "hashMerkleRoot" is a unique hash which represents all the transactions in the block. If you add, remove, or change ONE transaction in the block you will end up with a different Merkle Root hash. One of those transactions is the "coinbase" where miners receive their reward. Even two miners (solo miners, pools, p2pool users) which have the exact same set of other transactions will still have a unique coinbase txs and thus have different Merkle Root hashes.
Different Merkle Root Hash = Different Block Header = Different Hash.
https://en.bitcoin.it/wiki/Block_hashing_algorithmGiven just those fields, people would frequently generate the exact same sequence of hashes as each other and the fastest CPU would almost always win. However, it is (nearly) impossible for two people to have the same Merkle root because the first transaction in your block is a generation "sent" to one of your unique Bitcoin addresses. Since your block is different from everyone else's blocks, you are (nearly) guaranteed to produce different hashes. Every hash you calculate has the same chance of winning as every other hash calculated by the network.
This is starting to make sense - thank you