Можно создать дубликат:
Generating random results by weight in PHP?Выбор случайного элемента с помощью определяемых пользователем весов
У меня есть веб-приложение, где пользователи могут добавлять 1-20 строк текста и присвоить вес к ним как часто это должно проявляться. Затем система выбирает случайную строку, основанную на определенных весах. Каков наилучший способ сделать это? Значения диапазона для веса каждой строки? Могу ли я просто назначить пользователю номер (0-100) для каждой строки? Как бы вы выбрали случайную строку? (Каждый выбор не беспокоится о том, что было выбрано раньше, каждая строка имеет одинаковые шансы (по весу) выбора в начале каждого вызова).
Связанный: http://stackoverflow.com/questions/4463561/weighed-random-selection-from-array/4463613#4463613 –
Этот вопрос возникает часто. Вот хороший с простым ответом: http://stackoverflow.com/questions/445235/generating-random-results-by-weight-in-php –