Who decides what the next, correct Nonce is?
Each node is searching for a different set of Nonces, actually.
This is because each node collects randomly a bunch of transactions that will form a block. So each block that the nodes are mining is different. On top of that, there are many Nonces that could make a correct form of hash.

The only thing here that matters is:


all the data inside the block seem to be correct (correct inputs, with correct and confirmed transactions, with their correct associated hashes, etc.).
Nonce + Block gives you a hash smaller than a predetermined number (known by all the nodes).