Не успях бързо да намеря изходния код за функцията; виждането му може да помогне за получаване на по-добър отговор. Въпреки това изглежда като „не... но доста близо“.
От документацията виждам, че се опитва да бъде произволно (и по избор можете да го заредите); но има две предупреждения, които означават, че може да не винаги е еднообразно, когато очаквате, че първият брой е в документацията му:
RAND() is not meant to be a perfect random generator. It is a fast way to generate random numbers on demand that is portable between platforms for the same MySQL version.
т.е. кодът за него е под въпрос дали е истински генератор на произволни числа - той е достатъчно добър за повечето цели, но не може да му се вярва за използване, да речем, при криптиране, и бих се обзаложил, че не може да се вярва дори, че е такъв униформа, както можете да очаквате.
Твърдението им, че не е перфектен, означава, че почти сигурно ще се провали поне на някои от тези тестове; как все още не е ясно, но ако не е перфектен RNG, няма да видите идеално равномерно разпределение; Бих очаквал или пропуски, или пикове на диапазони, които са повече/по-рядко срещани.http://www.stat.fsu.edu/pub/diehard/cdrom/pscript/monkey.ps (оттогава има друга работа, но това все още е част от ключовата работа при валидирането на RNG).
Можем да се обзаложим, че кодът зад него със сигурност не опитайте се да гарантирате равномерно разпределение, тъй като да го направите (проследяване на историята на това, което вече е излязло) би загубило маса памет. Във всеки случай, ако вече сте генерирали много стойности, използвайки перфектен RNG, нищо не гарантира, че ако всичките ви стойности досега са били ниски, следващата ще бъде висока. Винаги ще бъде също толкова произволно...