Not too difficult if you use the “easy way”:
local function randomPointInCircle(x, y, radius) local randX, randY repeat randX, randY = math.random(-radius, radius), math.random(-radius, radius) until (((-randX) ^ 2) + ((-randY) ^ 2)) ^ 0.5 \<= radius return x + randX, y + randY end
All it does is repeatedly get a random point within a rectangle, then check if the point is under the needed distance from the center of the rectangle.
This is off the top of my head, so if it doesn’t work perfectly, let me know.
EDIT: Whoops, took so long to post that @thomas6 got there before me.
Might want to try both and see which is faster; don’t know if the cosine/sine calls would be slower than a few extra random calls.