diff --git a/dev/js/spec/panelSpec.js b/dev/js/spec/panelSpec.js
index 9799b07..b9047eb 100644
--- a/dev/js/spec/panelSpec.js
+++ b/dev/js/spec/panelSpec.js
@@ -208,7 +208,7 @@
       expect(list.classList.contains('button-group-list')).toBeTruthy();
       expect(list.classList.contains('visible')).toBeFalsy();
 
-      pagination.addRandomPage();
+      expect(pagination.addRandomPage()).toBeTruthy();
 
       let clicked = false;
       pagination.actions().add(
@@ -225,5 +225,27 @@
       document.body.removeChild(p);
       document.body.removeChild(pagination.actions().element());
     });
+
+    it('shouldn\'t show random page on single pages', function () {
+
+      // Create pagination element for pagination information
+      let p = document.createElement('div');
+      p.setAttribute('id', 'pagination')
+      p.setAttribute('data-page',1);
+      p.setAttribute('data-total',1);
+      p.setAttribute('data-count',25);
+
+      document.body.appendChild(p);
+
+      // Create pagination class object
+      var pagination = paginationClass.create();
+      let list = pagination.actions().element();
+      expect(pagination.type).toEqual('pagination');
+      expect(list.classList.contains('button-group-list')).toBeTruthy();
+      expect(list.classList.contains('visible')).toBeFalsy();
+
+      expect(pagination.addRandomPage()).toBeFalsy();
+    });
+
   });
 });
diff --git a/dev/js/src/panel/pagination.js b/dev/js/src/panel/pagination.js
index dd3331c..03c5258 100644
--- a/dev/js/src/panel/pagination.js
+++ b/dev/js/src/panel/pagination.js
@@ -16,7 +16,6 @@
   // Localization values
   const loc = KorAP.Locale;
   loc.RANDOM_PAGE = loc.RANDOM_PAGE || 'Random page';
-
   
   return {
     type : 'pagination',
@@ -77,18 +76,23 @@
      */
     addRandomPage : function () {
       const pi = pageInfoClass.create();
-      
+
+      if (pi.total() < 2)
+        return false;
+
       const button = this.actions().add(
         loc.RANDOM_PAGE,
         {},
         function () {
-          if (pi.total() > 0) {
+          if (pi.total() > 1) {
             const sp = new URLSearchParams(window.location.search);
             sp.set("p", Math.floor(Math.random() * pi.total()) + 1);
             window.location.search = sp.toString();
           };
         }
-      )
+      );
+
+      return true;
     }
   }
 });
