You could have a look to the 3GPP documents:
3GPP TS 22.011
3GPP TS 23.122
But the best introduction is this piece :
3GPP TR 22.811
Which summarize very nicely the principles of selection.
“the home PLMN operator and the user can prioritise by means of lists the available PLMNs/Access technologies combinations for roaming. If only networks for which no priority is defined are available, then those networks with sufficient radio quality are chosen at random, then the rest are chosen in order of decreasing signal strength. Furthermore the home PLMN operator has control over the periodicity the UE attempt to register on a PLMN with higher priority than the current registered one.”