I wouldn't use the else, that may be stopping the loop if you are only spawning one character.
Create a new save so you can easily go back to your method if you want to build from there.
What I would do is this. Create a local variable number leave 0, I'll call it "EnemySpawned"
Create an action that sets EnemySpawn to 0 after the GroupSize action is set to the random number.
Contain your random with an int so there can't be decimals, int(random(x,x))
Delete loop condition.
New condition, System compare - "EnemySpawned" !=(not equal to) "GroupSize"
change your else condition to - "EnemySpawned =(is equal to) GroupSize"
add another condition - Trigger once while true
Start from there, you should be able to take care of the rest but I'll keep an eye on the post.