I have a shape that is a cylinder of radius $r$ and height $h$ with a hemisphere at one end. Total area of interest is $2πr^2+2πrh$ (bottom is not included)
I would like to randomly distribute points over that surface (not including the 'bottom') such that the total number of points add up to some number (maybe interactively changing the parameters).
Is there some algorithmic way to do this, perhaps with coordinate transformations? It's not a developable surface due to the hemisphere.
Approximations are okay, it just has to be visually pretty random looking, and the number of points will not be huge (think 10s to 100s).
It seems like if the surfaces are flattened there will be issues at the seams as well as the hemisphere distortion.
I have found this paper on Fibonacci lattices.

To generate a single point ...
With $p := 2\pi r^2/(2\pi r^2 + 2\pi r h)$ being the fraction of surface area in the hemispherical shell, draw $u$ from $U[0, 1]$. If $u < p$ generate a random point on the hemisphere; otherwise, one from the cylindrical shell. The first can be done by normalizing and translating a 3d normal variate, the other by choosing $z$ uniformly along the length of the cylinder and $(x, y)$ by normalizing a 2d normal variate.