I think what happens is that when you use one of the "Pick" events, the system actually loops through all instances and compares them one by one.
So it takes the first instance, compares if .stt=choose(1,2)
Then it takes the seconds instance, compares if .stt=choose(1,2)
The problem is that the second time choose(1,2) may give a different number!
Say for the first instance random number was 1 and for the second instance random number was 2. And as a result, both instances get selected and two bullets are fired!
Here is an easy fix:
System-> Pick EF_Start where stt=rand
Or just use the Pick Random Instance event.