Three uplink channels (PUCCH, PUSCH, PRAH) are defined in LTE.
PRACH (Physical RACH channel) is a common channel where UEs can send initial small size information to get the uplink shared resources. While PUCCH comes into picture when UE has to send dedicated minimal information (for example: Scheduling Request) to eNodeB.
If UE does not have PUCCH resource and it has something to send to eNodeB, it initiates RACH procedure using the PRACH. For example: UE is in RRC-IDLE state and it wants to send "RRC Connection Request" to eNodeB, since eNodeB does not have PUCCH resource to inform eNodeB, it has to execute RACH procedure to get the initial grant over the PUSCH channel.