双色球源码,有点小疑点求高手帮下忙

【分享】双色球源码,有点小问题求高手帮下忙
问题:①在开奖时小几率还是会出现重复的随机值②如何在购彩时什么按钮出什么数字,并且当前按钮变色,再次点击按钮取消选中并恢复颜色?(如果是在button里面一个个设置属性未免太麻烦)
开奖页面代码

 
namespace 彩票开奖
{
    public partial class 双色球开奖 : Form
    {
       
        
        public 双色球开奖()
        {
           
            InitializeComponent();
        
            InitArray();
        }
        public static AwardNumber AN { get; set; }
        //private static AwardNumber AN { get; set; }
        //用于存放1到33这33个
        List<int> container = new List<int>(33);
        List<int> result = new List<int>(6);
        //定义抽奖次数,双色球6+1
        int j = 1;
        int count = 0;
        public void Award()
        {
           
            count++;
            if (count == 7)
            {
                MessageBox.Show("本期开奖结束!");
                sorkAward();
                this.btnAward.Enabled = false;
            }
        }
 
        //初始化数组,用于保存1~33个红球数字
        public void InitArray()
        {
            for (int i = 1; i < 34; i++)
            {
                container.Add(i);
            }
        }
        public void RedRandom()
        {
            
            Random rd = new Random();
            //随机生成蓝球
            Random rdblue = new Random();
            int mathblue = rdblue.Next(1, 17);
            int index = 0;
            int value = 0;
            //从[0,container.Count]中取一个随机值,保证这个值不会超过container的元素个数(生成6个不同随机数)
            index = rd.Next(1, container.Count);
            value = container[index];
            container.RemoveAt(index);
            //遍历所有文本框
            foreach (Control c in Controls)
            {
               
                //判断类型为TextBox
                if (c is TextBox)
                {
                    if (c.Name == "txt1" && txt1.Text == "")
                    {
                        this.txt1.Text = value.ToString();