When no sprites are picked at all, an else will trigger (it's actually the only time you want to use else with a picking condition).
As for you first issue, try adding a condition system: pick Nth instance or pick random instance depending on your need after your conditions.
So you're saying that my event should look like more like this: Sprite.BooIsAvaible = 1, Pick Nth instance of the sprite? Will it only pick one instance and move on, or will it pick all nth instances? I'll check that out.
@conker23 I tried similar approach, but it didn't work. I might look in to it again and try different approach if Aphrodites way won't work.