How to pick a random object? There is a condition for that.
Just use "pick random object" condition for a particular object then assign an action to that object in the event editor. Then whenever that condition is reached the action will be performed on a random instance of that object.
If you want to include multiple object types use a qualifier.
I use to get frustrated with selecting random objects. I'd want a state machine to read a random value, and make choices from the picked value. Example random = 1 than hit. Then assign the choice it made to a random object.
I found it picked the same object every time. That's because the code cycled threw all the qualifiers. Ending on the last one that was created.
My solution was to set up alterable values to serve as timers. And only when the value serving as a timer = 0. Then the code assigns the random value to a object.
Not everyone uses timers. But they helpful. They can keep other lines of code from overwriting things you set. Of course their is always spread value and fastloops. That's another route you could take.