Hello I am trying to instantiate multiple prefabs at random positions without them overlapping would someone help?

float x;
float y;

public GameObject Enemy;
void Start() {
x = Random.Range(-140, 140);
y = Random.Range(-140, 140);
for (int i = 0; i < 4; i++)
Instantiate(Enemy, new Vector2(x, y), Quaternion.identity);

}
here is my code I am in debt to anyone who can help thanks

void Start()
{
for (int i = 0; i < 10; i++)
{
float spawnY = Random. Range.
(Camera. main. ScreenToWorldPoint(new Vector2(0, 0)). y, Camera. main.
float spawnX = Random. Range.
(Camera. main. ScreenToWorldPoint(new Vector2(0, 0)). x, Camera. main

Dunkinrunsonyou

oh i figured out you have to reset the random spawn every time you loop like this!
float x;
float y;

public GameObject Enemy;
void Start() {
x = Random.Range(-140, 140);
y = Random.Range(0, 140);
Vector2 spawnPositions = new Vector2(x, y);
Quaternion spawnRotation = Quaternion.identity;
//put your prefab name in for enemy
for (int i = 0; i < 100; i++) {
Instantiate(Enemy, new Vector2(x, y), spawnRotation);
x = Random.Range(-140, 140);
y = Random.Range(0, 140);

}
}