How have you done the movement logic so far? You could use instance variables to define a certain direction or type of movement, and you pick the enemy at the time of creation to assign the variables. You could say on created, give variables choose(0,1) either 0 or 1, then have logic if variable =0, set angle 0 if variable=1, set angle 180, this in its basic form would allow an enemy to move left or right on creation.
By at the same time I assume you mean the speed of movement, again you can define this in a range on creation, the issue you have is probably nothing is defined and all enemies are created with same speed, you can say on created enemy set movement speed to random(300,500) for example to give it a speed within a random range.
As for stopping when it reaches the player, this should only really apply to the enemy that reaches the player if the logic is done right. For example if you had enemy overlapping player, disable movement then this would only pick the enemy that is overlapping the player.
Depending on how complex the game is, what I like to do, and I guess others, is to use instance variables as states for "walk" "attack" "stop" etc. You can define this with functions where you send the enemy's UID through the function to ensure it is that specific enemy to do the actions and then you run the relevant logic for "walk" "attack" "stop" etc