1. So what’s happening here?
Conceptually, this goes around the circle in steps of 1 degree, say, and for each ray plots a point at a distance from the circumference given by random(), or random(random()), etc.
So, conceptually,
For phi = 1..360
r = 1 - random() // etc.
x = r*cos(phi)
y = r*sin(phi)
(It might choose phi randomly uniformly instead, doesn’t matter)2. What’s random(random())?
As explained in detail elsewhere, since the argument specifies the upper limit of the uniform, it equals random()*random() (ie the product of two independent uniform 0-1 random variables).
3. Why is the first image denser in the center, and the second uniform?
Imagine cutting the disk into 100 rings of equal (small) thickness. The area of a ring is approximately thickness times circumference of the ring, in other words, proportional to the distance from the center.
If we put the same number of points into each ring, the rings near the center (with less area) will have more points per area than the rings at the outside, thus appear darker.
If, however, we put more points into the outer rings, and in particular if we make the number of points proportional to the distance from the center, then we will get a more uniform picture.
4. Why 1-random(), rather than random()?
With the latter, we’d just get a series of disks with the bulk of the points concentrated in the centre, increasingly so. Less interesting than what’s here.