This is a pretty common need. There are fancier ways to do it, but for a simple case like this, the easiest is to just generate a random number between 0 and 100, and then use an if/else if/else block to carve that 0-100 range into whatever chunks you want. For example:
int roll = Random.Range(0, 100)
if (roll < 50) {
DoOneEncounter();
} else if (roll < 80) {
DoAnotherEncounter();
} else {
DoSomethingElse();
}
So this gives the three possibilities a 50%, 30%, and 20% chance respectively.