Unity 5. How to duplicate enemy that behaves as a real one

Hello,
I am creating a survival game. I have an animated enemy AI. When I duplicate it by pressing ctrl+d, the duplicated enemy does not behave as real one namely animations are not working. How can I duplicate an enemy so that new ones do the same job as real one?
Thank you for your help in advance!
Here is my enemy ai code:

public class EnemySkeleton : MonoBehaviour {
public Transform player;
static Animator anim;
public int currentHealth = 3;
PlayerScore playerScore;

// Use this for initialization
void Start () {
    anim = GetComponent<Animator>();
    playerScore = GameObject.FindGameObjectWithTag("Player").GetComponent<PlayerScore>();
}
   // Update is called once per frame
void Update () {
    if (currentHealth <= 0)
    {
        return;
    }
    
    if (Vector3.Distance(player.position, this.transform.position) < 10)
    {
        Vector3 direction = player.position - this.transform.position;
        direction.y = 0;
        this.transform.rotation = Quaternion.Slerp(this.transform.rotation,
            Quaternion.LookRotation(direction), 0.2f);
        anim.SetBool("IsIdle", false);
        if (direction.magnitude > 2)
        {
            WalkTowardsPlayer();
        }
        else
        {
            Attack();
        }
    }
    else
    {
        StayIdle(); 
    }
}
void WalkTowardsPlayer()
{
    this.transform.Translate(0, 0, 0.1f);
    anim.SetBool("IsWalking", true);
    anim.SetBool("IsAttacking", false);
}
void Attack()
{
    anim.SetBool("IsWalking", false);
    anim.SetBool("IsAttacking", true);
}
void StayIdle()
{
    anim.SetBool("IsWalking", false);
    anim.SetBool("IsAttacking", false);
    anim.SetBool("IsIdle", true);
}
public void Damage(int damageAmount)
{
    currentHealth -= damageAmount;
    if (currentHealth <= 0)
    {
        playerScore.collectedScore += 10;
        anim.SetBool("IsDeath", true);
    }
}

}

This is your biggest problem:

static Animator anim;

“Static” means that, across all of your EnemySkeleton instances, only one anim variable exists, and each of your skeletons share this variable (the technical definition is that the variable belongs to the class type itself instead of instances of that class).

This is good for some things, but the problem here is that Animator is a component, and each of your enemy gameobjects has its own individual Animator, and the code in your script is trying to use the individual animator on its gameobject, but since it’s a static field, when each skeleton initializes (which they do all at once sequentially), they all try to set that one shared variable to their own animator, so at the end all of your skeletons have a reference to the last skeleton in line’s animator instead of their own animator.

Change it to public Animator anim; and it’ll be fixed. This also allows you to link your animator component to the script in the inspector instead of getting the component in the Start function.