using System.Collections.Generic;
static void Main(string[] args)
Console.Write("Enter the maximum number for lotto: ");
int max_number = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter the number of values to be generated: ");
int num_values = Convert.ToInt32(Console.ReadLine());
Random random = new Random();
List<int> drawing = generate_drawing(random, max_number, num_values);
long number_of_tips = num_tips(max_number, num_values);
Console.Write("Lotto numbers: ");
foreach (int number in drawing)
Console.Write(number + " ");
Console.WriteLine($"| {number_of_tips} possible tips");
for (int i = 1; i <= 10; i++)
List<int> tip = generate_drawing(random, max_number, num_values);
int matches = match_count(drawing, tip);
Console.WriteLine($"Tip {i}: {string.Join(" ", tip)} | {matches} numbers match");
static List<int> generate_drawing(Random random, int max_number, int num_values)
List<int> drawing = new List<int>();
while (drawing.Count < num_values)
int number = random.Next(1, max_number + 1);
if (!drawing.Contains(number))
static long num_tips(int max_number, int num_values)
for (int i = max_number; i > max_number - num_values; i--)
for (int i = 2; i <= num_values; i++)
static int match_count(List<int> drawing, List<int> tip)
foreach (int number in tip)
if (drawing.Contains(number))