diff --git a/Rules b/Rules
index bbdcc5463..6f037b121 100644
--- a/Rules
+++ b/Rules
@@ -30,7 +30,7 @@ end
##
# Require rules
require_rules "rules/assets"
-require_rules "rules/pages/RandomRedirect", {locales:, surah_id_to_name:}
+require_rules "rules/pages/surah/random", {locales:, surah_id_to_name:}
require_rules "rules/pages/surah/stream", {locales:, surah_id_to_name:}
require_rules "rules/pages/surah/index", {locales:}
require_rules "rules/pages/surah/redirect"
diff --git a/rules/pages/RandomRedirect.rules b/rules/pages/RandomRedirect.rules
deleted file mode 100644
index b57f52b10..000000000
--- a/rules/pages/RandomRedirect.rules
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/usr/bin/env ruby
-
-##
-# Contains rules that are related to RandomRedirect.html.erb
-# in one way or another
-
-compile "/html/redirect-to-surah-slug.html.erb" do
- filter(:erb)
- 1.upto(114) do |surahno|
- locales.each { write(File.join("/", _1, surahno.to_s, "index.html")) }
- end
-end
-
-compile "/js/pages/RandomRedirect.ts" do
- filter :webpack
- write "/js/pages/RandomRedirect.js"
-end
-
-compile "/js/pages/redirect-to-surah-slug.ts" do
- filter :webpack
- write "/js/pages/redirect-to-surah-slug.js"
-end
diff --git a/rules/pages/surah/random.rules b/rules/pages/surah/random.rules
new file mode 100644
index 000000000..5e2055f42
--- /dev/null
+++ b/rules/pages/surah/random.rules
@@ -0,0 +1,16 @@
+#!/usr/bin/env ruby
+
+##
+# Redirects to a random surah
+
+locales.each do |locale|
+ compile "/html/pages/surah/random.html.erb", rep: "random/#{locale}" do
+ filter(:erb)
+ write("/#{locale}/random/index.html")
+ end
+end
+
+compile "/js/pages/surah/random.ts" do
+ filter :webpack
+ write "/js/pages/surah/random.js"
+end
diff --git a/src/html/RandomRedirect.html.erb b/src/html/pages/surah/random.html.erb
similarity index 81%
rename from src/html/RandomRedirect.html.erb
rename to src/html/pages/surah/random.html.erb
index b6e85d3bf..bc9ac9577 100644
--- a/src/html/RandomRedirect.html.erb
+++ b/src/html/pages/surah/random.html.erb
@@ -7,6 +7,6 @@
-
+