[C#] How do I randomly spawn objects inside of a radius without them overlapping.

I am really a noob at this but I am trying to make it so that multiple instances of a Game Object spawn in a random position within a set radius. All I am able to do so far is to make it spawn in variations of a straight line

using UnityEngine;
using System.Collections;

public class WallGen : MonoBehaviour
    public GameObject thePlatform;
    public Transform GenerationPoint;
    public float distancebetween;

    private float platformWidth;

    // Use this for initialization
    void Start()
        platformWidth = thePlatform.GetComponent<CircleCollider2D>().radius;

    // Update is called once per frame
    void Update()
        if (transform.position.y < GenerationPoint.position.y)
            transform.position = new Vector3(transform.position.x + platformWidth + distancebetween, transform.position.y, transform.position.z);
        Instantiate(thePlatform, transform.position, transform.rotation);


how would I get the Random.insideUnitCircle to follow the gameObject its attached to

How do you make a random range be in relation to a target number? You add the random number to the target number.

var random = Random.Range(-2f, 2f);
var target = 5;
var result = target + random; // 2 smaller or greater than 5

It’s exactly the same with vectors.
You should just create a random vector and add that to the position of the target GameObject.

public void Spawn() {
        var randomPos = (Vector3)Random.insideUnitCircle * 10;
         randomPos +=  transform.position;
         Instantiate(thePlatform, randomPos, transform.rotation);