diff -Nuar a/vendor/magento/module-target-rule/Block/Product/AbstractProduct.php b/vendor/magento/module-target-rule/Block/Product/AbstractProduct.php
index 89bebf67c4c..b7230f37027 100644
--- a/vendor/magento/module-target-rule/Block/Product/AbstractProduct.php
+++ b/vendor/magento/module-target-rule/Block/Product/AbstractProduct.php
@@ -136,7 +136,7 @@ abstract class AbstractProduct extends \Magento\Catalog\Block\Product\AbstractPr
                 // Perform rotation mode
                 $select = $this->_linkCollection->getSelect();
                 if ($this->isShuffled()) {
-                    $this->_resourceIndex->orderRand($select);
+                    $select->order($this->getRandomOrderExpression());
                 } else {
                     $select->order('link_attribute_position_int.value ASC');
                 }
@@ -147,6 +147,20 @@ abstract class AbstractProduct extends \Magento\Catalog\Block\Product\AbstractPr
     }
 
     /**
+     * Used to generate pseudo-random sort order to avoid using Mysql ORDER BY RAND()
+     *
+     * @return string
+     */
+    private function getRandomOrderExpression() : string
+    {
+        $productEntityFieldsToRandomize = ['e.entity_id', 'e.attribute_set_id', 'e.sku'];
+        $sortOrderToRandomize = ['ASC', 'DESC'];
+        return $productEntityFieldsToRandomize[random_int(0, count($productEntityFieldsToRandomize) -1)]
+            . ' '
+            . $sortOrderToRandomize[random_int(0, count($sortOrderToRandomize) -1)];
+    }
+
+    /**
      * Get linked products
      *
      * @return array
@@ -160,6 +174,9 @@ abstract class AbstractProduct extends \Magento\Catalog\Block\Product\AbstractPr
                 $items[$item->getEntityId()] = $item;
             }
         }
+        if ($this->isShuffled()) {
+            shuffle($items);
+        }
         return $items;
     }
 
