Each enemy should have its own timer. You're probably doing something like this:
timer -= gameTime.ElapsedGameTime.TotalSeconds;
if(timer<=0)
{
ship.Fire();
timer=timerReset;
}
What you want to do is have each individual ship carry its own timer, inside your Ship class:
foreach(Ship ship in ships)
{
ship.timer -= gameTime.ElapsedGameTime.TotalSeconds;
if(ship.timer<=0)
{
ship.Fire();
ship.timer=timerReset;
}
}
Hope this helps point you in the right direction.