Перестановка с реальными картами не так уж и случайна, если вы не практикуете ее много.Легко перетасовать неправильно, так что либо верх, либо низ пакета не тасуются хорошо.
Использование ORDER BY RAND () для перетасовки - разумный подход, но есть некоторые вещи, о которых следует помнить:
- Небольшое смещение вводится, если RAND () генерирует два абсолютно равных случайных числа, поскольку это не будет правильно перемешивать эти две карты относительно друг друга.
- RAND ()не является криптографически безопасным.Увидев некоторые из первых карт в колоде, квалифицированный атакующий мог бы определить внутреннее состояние PRNG, использовавшегося для перетасовки колоды, и, следовательно, предсказать оставшиеся карты.
- ORDER BY RAND () требуетO (n log (n)) операций.Скорее всего, он будет иметь приемлемую производительность для перестановки 52 строк, но, вероятно, вы не хотите использовать его для перестановки миллионов строк, например.
В развлекательных целях ваш подход должен быть подходящим.Если это за серьезные деньги, возможно, вы захотите использовать лучший алгоритм перемешивания, такой как случайный случай Фишера-Йетса и криптографически безопасный генератор случайных чисел.