Picking a 3D direction at random

redblob3[r1_] := 
      Graphics3D[{RGBColor[1, 0, 0], PointSize[0.01], Point[r1]}]

The naive, incorrect approach

dist[
        p_List] := (Sqrt[p[[1]]^2 + p[[2]]^2 + p[[3]]^2])

Random3dpoint := {Random[Real, {-1, 1}], Random[Real, {-1, 1}], 
        Random[Real, {-1, 1}]}

unif = Table[Random3dpoint, {10000}];

circunif = {};

Only use those points within the circular region

For[i = 1,  
      i  <  Length[unif], 
If[
        dist[unif[[i]]] < 1, 
circunif = 
          Append[circunif, 
            unif[[i]]], 

]; i++
]

As can be seen by plotting the indivudial coordinates there is a bias towards placing points nearer the center

ListPlot[Table[circunif[[i, 1]], {i, Length[circunif]}]]

ListPlot[Table[circunif[[i, 2]], {i, Length[circunif]}]]

ListPlot[Table[circunif[[i, 3]], {i, Length[circunif]}]]

Showing the 3D plot also shows this

graphics = 
        Table[
redblob3[
            circunif[[i]]], 
{i, 
            Length[circunif]}
];

    
Show[graphics];

A correct approach

The proof is omitted here due to space restrictions

Needs["Statistics`ContinuousDistributions`"]

RandomNormal[μ_, σ_] := 
      Random[NormalDistribution[μ, σ]]

GaussVar := Table[RandomNormal[0, 1], {3}]

circunif2 = 
        Table[gauss = 
            GaussVar; 
1/(Sqrt[
                  gauss[[1]]^2  +  gauss[[2]]^2   +  
                    gauss[[3]]^2 ])*{gauss[[1]], gauss[[2]], 
              gauss[[3]]}, 
{10000}
];

graphics = {}

graphics = 
        Table[
redblob3[
            circunif2[[i]]], 
{i, 
            Length[circunif2]}
];

val = 1

Now the correct distribution is evident

Show[graphics, 
      PlotRange -> {{-val, val}, {-val, val}, {-val, 
            val}}]

ListPlot[
      Table[circunif2[[i, 1]], {i, Length[circunif2]}]]

ListPlot[
      Table[circunif2[[i, 2]], {i, Length[circunif2]}]]

ListPlot[
      Table[circunif2[[i, 3]], {i, Length[circunif2]}]]