Random Points on Disc Perimeter

This one is rather easy if you didn't sleep during basic trigonometrics. Just take a random angle and convert it into cartesian coordinates!

/// <summary>Returns a random point on the perimeter of a disc</summary>
/// <param name="randomNumberGenerator">Random number generator that will be used</param>
/// <param name="radius">Radius of the disc</param>
/// <returns>A random point on the disc's perimeter</returns>
public static Vector2 GenerateRandomPointOnPerimeter(
  System.Random randomNumberGenerator, float radius
) {

  // Choose a random angle for the point
  float phi = (float)randomNumberGenerator.NextDouble() * MathHelper.TwoPi;

  // Calculate the final position of the point in world space
  return new Vector2(
    radius * (float)System.Math.Cos(phi),
    radius * (float)System.Math.Sin(phi)
  );

}