One naive but wrong idea is to randomly pick the degree and then the radius. We can find out the probability for a point located at in a circle is , where R is the circle radius, which is different from the uniform probability .
Instead, we can regard a circle composed of infinite triangles. Since we can easily generate uniform-distributed points in a triangle, it is easy to find the correct solution for a circle. See this answer for ref.
As a conclusion, the pseudocode of generator is listed as follows:
# assume the circle is centered at (0, 0) with radius 1 from math import pi, sin, cos from random import random def generator(): d = 2*pi*random() r = random()+random() if r > 1: r = 2-r return (r*cos(d), r*sin(d)) for i in range(10): print generator()