RACH can be performed in below mentioned scenarios :
1. Initial Access - UE is trying to access the network in RRC idle state.
2. During RRC connection re-establishment procedure .
3. Handover
4. When uplink synchronization is lost (means from a certain duration network has not received anything from UE in uplink.)
5. When UE does not have any PUCCH resources available for SR(Scheduling Request) .
6. When timing advance is needed for positioning purpose in RRC connected state for UE.