If you are starting a new ERC20 token:
To generate a random number:
When you do external calls to other smart contracts:
When you are programming a game like poker of battleships where you need to hide opponents values is:
When considering smart contracts and the blockchain it's good:
When a smart contract pays out money: