diff --git a/swh/lister/packagist/lister.py b/swh/lister/packagist/lister.py
index 26f529c30d0f6911d21f5608c989770af0173dd5..c4faeab958670a224c6e3a93878d08150c11b15e 100644
--- a/swh/lister/packagist/lister.py
+++ b/swh/lister/packagist/lister.py
@@ -7,6 +7,7 @@ from dataclasses import dataclass
 from datetime import datetime, timezone
 import logging
 from typing import Any, Dict, Iterator, List, Optional
+from random import shuffle
 
 import iso8601
 import requests
@@ -123,9 +124,11 @@ class PackagistLister(Lister[PackagistListerState, PackagistPageType]):
 
     def get_pages(self) -> Iterator[PackagistPageType]:
         """
-        Yield a single page listing all Packagist projects.
+        Yield a single page listing all Packagist projects (randomly).
         """
-        yield self.api_request(self.url)["packageNames"]
+        package_names = self.api_request(self.url)["packageNames"]
+        shuffle(package_names)
+        yield package_names
 
     def _get_metadata_from_page(
         self, package_url_format: str, package_name: str