Сначала необходимо выполнить левое внешнее объединение, чтобы получить набор записей в URL-адресах, которых нет в urlinfo, а затем выбрать случайную запись из этого набора.
SELECT * FROM urls
LEFT OUTER JOIN urlinfo
ON urls.urlid = urlinfo.urlid
WHERE urlinfo.urlid IS null
Теперь выберите случайную строку из этого набора - вы можете сделать что-то вроде
SELECT newUrls.url
FROM (
SELECT urls.urlid, urls.url FROM urls
LEFT OUTER JOIN urlinfo
ON urls.urlid = urlinfo.urlid
WHERE urlinfo.urlid IS null
) as newUrls
WHERE urls.urlid >= RAND() * (SELECT MAX(urlid) FROM urls) LIMIT 1
Однако это будет работать только в том случае, если URL-адреса в urlinfo примерно случайным образом распределены по диапазону возможных значений.