diff --git a/RayTracer/tools/Random.cpp b/RayTracer/tools/Random.cpp
index 6e685859dbd690671e7132e8be3143acb66810ac..a32c8da65d0a97da157ec82395e1aa527da7a27a 100644
--- a/RayTracer/tools/Random.cpp
+++ b/RayTracer/tools/Random.cpp
@@ -3,7 +3,7 @@
 namespace util {
 
 Vec3 rand_vec3() {
-	return Vec3(dis(gen), dis(gen), dis(gen));
+	return Vec3(dis0to1(gen), dis0to1(gen), dis0to1(gen));
 }
 
 bool in_circle(const Vec3& v) {
diff --git a/RayTracer/tools/Random.h b/RayTracer/tools/Random.h
index dfc8b4fc4602dce76a28fca8bfee33d79d237e27..69c4f8bcdc5e97d0ef12dacd3d0ce1b554b0b440 100644
--- a/RayTracer/tools/Random.h
+++ b/RayTracer/tools/Random.h
@@ -8,7 +8,8 @@ namespace util {
 
 static std::random_device rd;
 static std::mt19937 gen(rd());
-static std::uniform_real_distribution<> dis(-1.0, 1.0);
+static std::uniform_real_distribution<> dis0to1(0.0, 1.0);
+static std::uniform_real_distribution<> disMinus1To1(-1.0, 1.0);
 Vec3 rand_vec3();
 bool in_circle(const Vec3& v);
 Vec3 rand_vec3_in_circle(float r);