I noticed that if a new wave spawns, the next enemy to shoot tends to be from the next wave even if the previous wave still hasn't be eliminated. This seems backwards to me. I would suggest making the enemies keep track of either what wave number they are or just how long they've been on the screen, then weighting the random to favor enemies that spawned earlier.