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()