Copy prefab to new object then change its vertices

I’m making a group of objects(20-30 pieces) based on an X number of prefabs to select from.
These are copied and the transform is changed randomly, however I’d like to change the mesh itself for each object.

var newObject = Instantiate(prefabObject) as GameObject;

I am instansiating the new objects from the prefab, but whatever change I do to them reflects on the original prefabs and imported file. I am using sharedMesh, instead of mesh because Unity says it will leak meshes?

How can I achieve what I am trying to do? I need to break the prefab connection programmatically when copying into the group so that my changes are not reflected on the prefabs.

You need to index the clone and then only update the clone if the index matches

int index = x;

    if (clone.index == x) 

All the clones share the same code, you are not changing the code for one clone. So an index tells the program which clone you are talking to.

Another way is the capture gameObject.GetInstanceID, but this changes with every time the program is run, so you would not have a permanent number like an index that you could refer to.