public Vector3d Random(Random rng )
{
Vector3d result;
result.X = (Double)(rng.NextDouble() * (Max.X - Min.X) + Min.X);
result.Y = (Double)(rng.NextDouble() * (Max.Y - Min.Y) + Min.Y);
result.Z = (Double)(rng.NextDouble() * (Max.Z - Min.Z) + Min.Z);
return result;
}