You’re halfway there. In addition to generating a random angle, just generate a random distance, less than or equal to the radius, weighted so that you get a uniform distribution:
private Point CalculatePoint()
{
var angle = _random.NextDouble() * Math.PI * 2;
var distance = Math.Sqrt(_random.NextDouble()) * _radius;
var x = _originX + (distance * Math.Cos(angle));
var y = _originY + (distance * Math.Sin(angle));
return new Point((int)x, (int)y);
}
Now you’re thinking with polar.
You can also weight the distance like so to avoid a square root:
var distance = _random.NextDouble() + _random.NextDouble();
distance = (distance <= 1 ? distance : 2 - distance) * _radius;