Actually, there are easier ways than those proposed, with no loops required. The trick is easy too, basd on the symmetry of randn. I'll pick the hemisphere with x(:,1) positive.
N=500;
r = 6;
center = [2,1,3];
R = randn(N,3);
R(:,1) = abs(R(:,1));
R = r*R./sqrt(sum(R.^2,2)) + center;
The last line uses capabilities found in R2016b or later. Easrlier versions of MATLAB would use bsxfun, twice.
Plot the points to show they do indeed lie on a hemisphere.
plot3(R(:,1),R(:,2),R(:,3),'o')
axis equal
box on
grid on
xlabel x
ylabel y
zlabel z
I tried to rotate things around so the hemisphere was clear. If you do so, you will see the sphere is indeed hollow, so on the surface of a hemisphere.
Note that it took all of 3 lines to generate the list of points, far lesss than I spent in plotting them.