well I could probably answer both, but I can only answer the second one off the top of my head
you would have to store all the neutral passive units in a unit array variable. Like this:
event:
map initialisation
actions:
set NeutralUnits[0] = <some unit>
set NeutralUnits[1] = <some other unit>
...
..
...
where "NeutralUnits" is your unit array variable.
Then you do something like:
event:
<whatever>
actions:
unit - order <some unit> to cast <possession> on NeutralUnits[Random number between 0 and *however many neutral units you have*]
here, "Random number" is simply a maths function which is available in the drop down list when you click on the blue thing between the [ ] for the variable.
e.g.
unit - order <some unit> to cast <possession> on NeutralUnits[*click here and look for random number function*]
hopefully that's clear....