Ok I will tell it to you briefly :
You have your regions created on your terrain , yes ? Let's assume you named each one of them 'HeroSpawnRegion 1', only the number changes. OK, you create on variable of type (Region) with an array ( Array option allows us to create just one variable instead of many ).
Now , we go to our trigger, we set variable ( Region[1] = HeroSpawnRegion 1 )
Now again set variable Region[2] = HeroSpawnRegion 2
If you have a third region again set variable Region[3] = HeroSpawnRegion 3
Now you create a point variable, without an array, that's just to directly select a random region and select its center, you set variable 'RandomPoint = (Center of (Region [X])'
It is not in the list where you find 'Playable Map area' , it's in the column above where you find 'Variables' ... When you click in the variable list , it expands, you select the variable 'Region', we go to the value between brackets which is [X], we have Region[1] and Region[2] and Region[3] set, we should select a random one between them, so we select a random array for it since they are all stored in the same Region , just a changed array,so we randomly select the array not the variable. for that , we click 'Array' or as we have here [X] value, and select from the list (Math - Random Number from 1 to 3), press Ok till you get back to the trigger editor since all values are blue and set
NOTE : This is a custom script : call RemoveLocation(udg_RandomPoint) .
NOTE 2 : If nothing of the above works, I will attach a test map