There's no advantage in selecting them "randomly", the resulting hash is always random. If there was a benefit in some sort of incrementing method, the entire system would be broken. They do some optimisation with the way the hash is calculated in some cases, but that's about it. The current processors are so fast that they can increment through the entire 32bit nonce space in under a second.
I suppose with an incrementing system, you could doll out the search space more efficiently. I imagine the more hash power you have, the more likely any two engines could randomly try the same nonce. (Assuming they were working off identical blocks). But it could be that there's a relationship between the way difficulty ratchets that keep the chances of testing the same nonces twice somewhat constant relative to the chance of finding a block.
Even if you're working on the same block, it's never the same work for the processor, the timestamp, order of transactions, number of transactions, and the coinbase all make the work unique.
ASIC - or Application Specific Integrated Circuit - is one purpose only - so unless the exact thing being accomplished is sha256(sha256(x)), then it can't be repurposed - this even limits its use as a password cracking machine unless the password is encrypted using that specific routine.
No, they can't crack passwords. They increment a nonce at the end of a supplied string and only return if the nonce results in a low hash. They're not a generic "fast SHA" device like you're thinking.