Самый простой способ - создать коллекцию (например, массив) из чисел 1-15, а затем перемешать ее. (РЕДАКТИРОВАТЬ: Под "набором чисел 1-15" я подразумеваю 1, 2, 3, 4, 5 ... 15. Не набор случайных чисел в диапазоне 1-15. Если я Я бы так сказал:)
Вы не указали подробности, на какой платформе вы находитесь, поэтому мы не можем легко дать пример кода, но я большой поклонник современного варианта Fisher-Yates shuffle . Например, в C #:
public static void Shuffle<T>(IList<T> collection, Random rng)
{
for (int i = collection.Count - 1; i > 0; i--)
{
int randomIndex = rng.Next(i + 1);
T tmp = collection[i];
collection[i] = collection[randomIndex];
collection[randomIndex] = tmp;
}
}
Если вы хотите создать «более случайные» числа (например, 15 различных целых чисел во всем диапазоне доступных вам целых чисел), тогда вероятно проще всего сделать что-то подобное (опять же, C #, но следует легко портировать):
HashSet<int> numbers = new HashSet<int>();
while (numbers.Count < 15)
{
numbers.Add(rng.Next());
}
List<int> list = numbers.ToList();
// Now shuffle as before
Перемешивание в конце состоит в том, чтобы убедиться, что любой порядок, который может выйти из реализации набора, не влияет на конечный результат.