'Off screen' is not really a player in the flow. It is just a 'place' where you place those that are 'not in play'.
I suppose you use instances, else use a family.
Give them a instance Boolean 'InPlay'.
When the global variable demands to bring one in play ....
___ Object > Is Boolean instance set 'InPlay' <--- INVERTED (so it reads as 'InPlay' = false)
___ System > Pick random instance (Object)
__________action > Object > Set Boolean 'InPlay' to true
__________Actions to place it somewhere on screen.
When an object is destroyed.
_________action > Object > Set Boolean 'InPlay' to false
_________action > Object > set X to -9999
Do not actual destroy it, just move it off screen.
If you want to use ''Off screen' as kind of 'the Boolean' ...
When the global variable demands to bring one in play ....
___ Object > Is On screen <--- INVERTED
___ System > Pick random instance (Object)
__________Actions to place it somewhere on screen.
When an object is destroyed.
_________action > Object > set X to -9999