separate coordinates for game objects

i Created a GameObject Spawner
which creates multiple Objects the object itself is supposed to give itself a random coordinate to walk to

this is done within the update methode each created object has its own script attached to it

sadly all my objects go to the same coordinate while object a and object b should have their own coords to go to

how can i make it so that the same GameObjects made from a prefab
get their own instance of coordinates to walk to?

every object created by the spawner has this script

    [SerializeField] private float EnemySpeed;
    [SerializeField] private float AttackRange;
    [SerializeField] private float SightRange;
    [SerializeField] private GameObject Target;
    [SerializeField] private GameObject MySpawnArea;
    [SerializeField] private float MaxMemory = 15.0f;
    private float CurrentMemory = 0.0f;
    private int OrderID = 0;                      
    [SerializeField] private float AreaSizeX;
    [SerializeField] private float AreaSizeZ;

//idle is called by Update()
    void Idle()
    {
        transform.position = Vector3.MoveTowards(transform.position, Target.transform.position, EnemySpeed * Time.deltaTime);
        Vector3 newDirection = Vector3.RotateTowards(transform.forward, Target.transform.position - transform.position, EnemySpeed * Time.deltaTime, 0.0f);
        transform.rotation = Quaternion.LookRotation(newDirection);
      
        if(Vector3.Distance(new Vector3(transform.position.x, 0, transform.position.z),new Vector3(Target.transform.position.x, 0, Target.transform.position.z)) < 3.0f)
        {
            Target = MySpawnArea;
            Target.transform.position = new Vector3(MySpawnArea.transform.position.x + Random.Range(-AreaSizeX, AreaSizeX), MySpawnArea.transform.position.y, MySpawnArea.transform.position.z + Random.Range(-AreaSizeZ, AreaSizeZ));
            print(Target.transform.position);
        }
    }

Sounds like a bug! Time to start debugging.

By debugging you can find out exactly what your program is doing so you can fix it.

Use the above techniques to get the information you need in order to reason about what the problem is.

Once you understand what the problem is, you may begin to reason about a solution to the problem.

Before you even attempt to debug, fix some of those horribly long crazy mad scientist lines of code.

If you have more than one or two dots (.) in a single statement, you’re just being mean to yourself.

Putting lots of code on one line DOES NOT make it any faster. That’s not how compiled code works.

The longer your lines of code are, the harder they will be for you to understand them.

How to break down hairy lines of code:

http://plbm.com/?p=248

Break it up, practice social distancing in your code, one thing per line please.

“Programming is hard enough without making it harder for ourselves.” - angrypenguin on Unity3D forums

“Combining a bunch of stuff into one line always feels satisfying, but it’s always a PITA to debug.” - StarManta on the Unity3D forums

Solved
Target = MySpawnArea;

… they all follow the same target
i added a idletarget gameobject for each of the spawned cubes
all they needed was their own target to follow

“sometimes you need to take a break so your brain can brain again more clearly” i myself wrote that just now