lerp to random position without "overlapping" each other

hi

im searching for a way to move multiple objects to a random position arround a specific object.
the script works, but now i want to ( i tried it for hours without any progress) distance between the objects so they dont touch or overlap each other
I am grateful for every tip

thx

public class TransformBubbles_State01 : MonoBehaviour

{

    public Transform startMarker;
    private Vector3 endMarker;
    private float speed = 0.05F;
    private float startTime;
    private float journeyLength;

    private Vector3 min;
    private Vector3 max;


    void Start()
    {
        min = new Vector3(-2, -2, 0);
        max = new Vector3(2, 2, 0);
        endMarker = startMarker.position - new Vector3( Random.Range(min.x,max.x),Random.Range(min.y,max.y),0);
        startTime = Time.time;
        journeyLength = Vector3.Distance(startMarker.position, endMarker);



    }
    void Update()
    {
        float distCovered = (Time.time - startTime) * speed;
        float fracJourney = distCovered / journeyLength;
        transform.position = Vector3.Lerp(startMarker.position, endMarker, fracJourney);
    }
}

look up nav mesh, it does object avoidance.

also for 2D? do you have a example?

at the moment i try my luck with a new way - add.force to a rigidbody2D