Here's a variation using CirclePoints[]
to evenly sample the circle:
BlockRandom[SeedRandom["spherical"];
c1 = RandomReal[1, 3]; c2 = RandomReal[1, 3];
r2 = RandomReal[3/2]; r1 = RandomReal[3/2];
d = EuclideanDistance[c1, c2];
u = (d^2 + r1^2 - r2^2)/(2 d^2); cc = {1 - u, u}.{c1, c2};
rc = Sqrt[r1^2 - d^2 u^2];
n = 30;
Graphics3D[{Opacity[1/2], Sphere[c1, r1], Sphere[c2, r2],
{Red, Sphere[AffineTransform[{RotationMatrix[{{0, 0, 1},
Normalize[c2 - c1]}], cc}][
PadRight[ArrayPad[CirclePoints[rc, n],
{{0, 1}, {0, 0}}, "Periodic"],
{Automatic, 3}]], 1/100]}}, Boxed -> False]]