A random page can be viewed via Special:Random.
This uses the
wfRandom() function, which is capable of avoiding duplicate values for up to approximately 4,611,686,014,132,420,609 (i.e., ≈ ) articles, and the page.page_random values from the page table.
The SpecialRandomGetRandomTitle hook can be used to modify the selection criteria.
In MysqlUpdater.php, the RAND() function is used to populate page_random.
By default, selection will be limited to pages from namespaces in
$wgContentNamespaces. The user can choose which namespace to look in. For example, if they wanted to view a random file they could go to Special:Random/file. If they wanted to view a random mainspace page they could go to Special:Random/main, etc.
The file that implements this feature is SpecialRandomPage.php. SpecialRandomRedirect.php (Special:RandomRedirect) directs the user to a random redirect page (minus the second redirect). There is an array,
$extra, that allows for adding extra SQL statements to the query for selecting a random page from the database.