Circular Bullet Spread for Shotgun / Bloom

Hello All,
I am currently trying to make a shotgun script for my game.
I want to add a bullet spread to each bullet.
I want to bullet spread to be in a circle though not a square.
The Shoot function is being called by an Animation event for those who are wondering.
Anybody know how I can aproach / code this?

[Header("Objects")]
public GameObject bullet;
public Transform barrel;
public Transform cam;

[Header("General")]
public float bulletSpeed = 1000;
public float bulletSpread = 1;
public int pellets;
public int damage;

[Header("Audio")]
public GameObject equipSound;

[Header("Animation")]
public Animator anim;

void OnEnable()
{
    EquipSound();
}

void Start()
{
    EquipSound();
}

void Update()
{
    if (!anim.GetCurrentAnimatorStateInfo(0).IsName("Equip"))
    {
        Animations();
    }
}

void Animations()
{
    if (Input.GetButton("Fire1"))
    {
        anim.SetBool("isShooting", true);
    }
    else
    {
        anim.SetBool("isShooting", false);
    }

    if (Input.GetButton("Fire2"))
    {
        anim.SetBool("isAiming", true);
    }
    else
    {
        anim.SetBool("isAiming", false);
    }

}

void Shoot()
{
    for (int i = 0; i < pellets; i++)
    {
        GameObject firedBullet = Instantiate(bullet, barrel.position, Quaternion.Euler(0, 0, 0));
        firedBullet.transform.parent = GameObject.FindGameObjectWithTag("PlayerBulletHolder").transform;

        firedBullet.GetComponent<PlayerBulletCollide>().damage = damage;

        Rigidbody rb = firedBullet.GetComponent<Rigidbody>();
        rb.AddRelativeForce(cam.forward* bulletSpeed);
    }
}

void EquipSound()
{
    GameObject equipAudio = Instantiate(equipSound, transform.position, Quaternion.identity);
    equipAudio.transform.parent = GameObject.FindGameObjectWithTag("SoundHolder").transform;
}

You’re looking for my GetPointOnUnitSpereCap method. Note: Use the second one.