How to spawn randomly positioned objects without overlapping

Hi, I can spawn objects randomly but sometimes they overlapping. I want to spawn objects without overlapping how can I do it?
My spawn code:

public void StartGame() {
        count = Random.Range(2, 6);

        for(int i = 0; i < count; i++) {
            float x = Random.Range(-2.0f, 2.0f);
            float y = Random.Range(-4.0f, 4.0f);

            Instantiate(enemy, new Vector3(x, y, 0), Quaternion.identity);
        }
    }

public void StartGame()
{
count = Random.Range(2, 6);
float enemyRadius = enemy.GetComponent().bounds.extents.x;

    for (int i = 0; i < count; i++)
    {
        float x = Random.Range(-2.0f, 2.0f);
        float y = Random.Range(-4.0f, 4.0f);
        Vector2 spawnPoint = new Vector2(x, y);

        //Assuming you are 2D
        Collider2D CollisionWithEnemy = Physics2D.OverlapCircle(spawnPoint, enemyRadius, LayerMask.GetMask("EnemyLayer"));

        //If the Collision is empty then, we can instantiate
        if (CollisionWithEnemy == false)
            Instantiate(enemy, new Vector3(x, y, 0), Quaternion.identity);
    }
}

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Test : MonoBehaviour
{
	public GameObject enemy;
	public float distanceBetweenObjects = 2f;
	List<Vector3> points = new List<Vector3>();
	
	void Start(){
		ObjectPositioning();
		ObjectSpawning();
	}
	
	void ObjectPositioning(){
		int count = Random.Range(2, 6);

		for(int i = 0; i < count;) {
			float x = Random.Range(-2.0f, 2.0f);
			float y = Random.Range(-4.0f, 4.0f);
			Vector3 point = new Vector3(x, y, 0);
			
			if (points.Count==0){
				points.Add(point);
				i++;
				continue;
			}
			
			for(int j = 0; j < points.Count; j++){
				
				if ((point-points[j]).sqrMagnitude > distanceBetweenObjects * distanceBetweenObjects){
					if (j==points.Count-1){
						points.Add(point);
						i++;
					}
					continue;
				}			
				break;
			}	
		}
	}

	void ObjectSpawning(){
		for (int i = 0; i < points.Count; i++){
			Instantiate(enemy, points*, Quaternion.identity);*
  •  }*
    
  • }*
    }