using System;
using System.Data;
using System.Configuration;namespace youxi
{
    class random1
    {
        private static char[] constant = { 
            '0','1','2','3','4','5','6','7','8','9', 
            'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z', 
            'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z' 
                 };
        public enum RandomType//随机类型
        {
            All,
            Number,
            Uppercased,
            Lowercased,
            NumberAndUppercased,
            NumberAndLowercased,
            UppercasedAndLowercased,
        }
        /// <summary>
        /// 产生随机数
        /// </summary>
        /// <param name="Length">随机数长度</param>
        /// <param name="rt">随机数类型</param>
        /// <returns></returns>
        public static string GenerateRandom(int Length, RandomType rt)
        {
            int initsize = 0;//总大小
            int beginsize = 0;//开始下标
            int endsize = 0;//结束下标
            Boolean IsCross = false;
            switch (rt)
            {
                case RandomType.All:
                    {
                        initsize = 62;
                        beginsize = 1;
                        endsize = 62;
                        //IsCross = false; 
                        break;
                    }
                case RandomType.Lowercased:
                    {
                        initsize = 26;
                        beginsize = 11;
                        endsize = 36;
                        //IsCross = false; 
                        break;
                    }
                case RandomType.Uppercased:
                    {
                        initsize = 26;
                        beginsize = 37;
                        endsize = 62;
                        // IsCross = false; 
                        break;
                    }
                case RandomType.Number:
                    {
                        initsize = 10;
                        beginsize = 1;
                        endsize = 10;
                        //IsCross = false; 
                        break;
                    }
                case RandomType.UppercasedAndLowercased:
                    {
                        initsize = 52;
                        beginsize = 11;
                        endsize = 62;
                        //IsCross = false; 
                        break;
                    }
                case RandomType.NumberAndLowercased:
                    {
                        initsize = 36;
                        beginsize = 1;
                        endsize = 36;
                        //IsCross = false; 
                        break;
                    }
                case RandomType.NumberAndUppercased:
                    {
                        IsCross = true;
                        break;
                    }
            }
            System.Text.StringBuilder newRandom = new System.Text.StringBuilder(initsize);
            Random rd = new Random();
            if (!IsCross)
            {
                for (int i = 0; i < Length; i++)
                {
                    newRandom.Append(constant[rd.Next(beginsize, endsize)]);
                }
            }
            else
            {
                for (int i = 0; i < Length; i++)
                {
                    newRandom.Append(constant[rd.Next(1, 10)]);
                    newRandom.Append(constant[rd.Next(37, 62)]);
                }
            }
            return newRandom.ToString();
        }
        /// <summary>
        /// 在一定范围内产生指定个数的不重复的随机数,已排序好
        /// </summary>
        /// <param name="BeginInt">起始数(包括)</param>
        /// <param name="EndInt">结束数(包括)</param>
        /// <param name="IntNum">随机数的个数</param>
        /// <returns></returns>
        public static int[] IntRandom(int BeginInt, int EndInt, int IntNum)
        {
            Random random_1=new Random ();
            if (IntNum > (EndInt - BeginInt + 1))
            {
                throw new Exception("参数违法");
            }
            int []result=new int [IntNum ];//最终结果
            int[] randRemember = new int[EndInt - BeginInt + 1];//记录是否已经产生过
            int number;
            for (int i = 0; i <IntNum ; )
            {
                number = random_1.Next(BeginInt+1, EndInt+1);
                if (randRemember[number - BeginInt] == 1)//是否已经产生过
                {
                    continue;
                }
                else
                {
                    randRemember[number -BeginInt ] = 1;
                    i++;
                }
            }
            for (int i = 0,j=0; i < EndInt - BeginInt + 1; i++)
            {
                if (randRemember[i] == 1)
                {
                    result[j] = i + BeginInt;
                    j++;
                }
            }
            return result;
        }
    }
}
能具体帮分析下吗?我想写 扑克程序现在想知道怎么随机取牌并且不重复,