//uygulamanın amacını şöyle düşünün, bu listboxtaki elemanları rastgele şekilde A ve B grubu olarak ayırıyor.
//Öncelikle burada A grubu için rastgele bir sayı üretiyor.
Random rnd = new Random();
int RastgeleSayi1 = rnd.Next(0, checkedListBox1.CheckedItems.Count);
//Sonrasında da B grubu için. Ama bu rastgele değil. Toplam üye sayısından A grubundakileri çıkarıyor ki ayırma artansız gerçekleşsin.
int RastgeleSayi2 = (checkedListBox1.Items.Count - RastgeleSayi1);
//sonra formdaki progressbar'a değer ekliyor ve bu değer 1000'e ulaşınca diğer işlemleri gerçekleştiriyor.
siticoneProgressBar1.Value += 100;
if (siticoneProgressBar1.Value == 1000)
{
//Sürekli kodları baştan tekrarlamasın diye timer'i kapatıyorum
timer2.Enabled = false;
//sonrasında işlem bir daha tekrarlanabileceği için progressbar'ı sıfırlıyorum
siticoneProgressBar1.Value = 0;
//başta gruplara ayırdığımız item sayılarını labellara yazıyor.
//label6 A grubunun üye sayısını,
label6.Text = RastgeleSayi1.ToString();
//label7 ise B grubunun üye sayısını temsil ediyor.
label8.Text = RastgeleSayi2.ToString();
//bunun sonunda formumda labelları koyduğum yerde şu şekilde bir yazı oluyor: (A grubu üye sayısı: 70, B grubu üye sayısı: 30 olarak düşünelim.
//A Grubu: 70 Üye
//B Grubu: 30 Üye
for (int i = 0; i <= checkedListBox1.Items.Count; i++)
{
//Ve asıl önemli yere geldik. İstediğim şey listbox'ta sadece A grubu üyelerinin kalması.
//Burada sizin yazdığınız kodları değiştirerek istediğim şeyi yaptım.
if (checkedListBox1.Items.Count > RastgeleSayi1)
{
//uygulama listboxtaki üyeleri gerçekten de gruplara ayırmadığı, bunu göstermelik yaptığı için hangi üyeleri sildiği önemli değil.
//bende bu yüzden B grubundaki üye sayısı kadar listenin en başındaki üyeleri silsin diye parantez içindeki "random_number_2"'yi değiştirdim.
//Parantez içine 1 yazıyorum ki 1. üyeyi silince 2. üye en üste yani 1. sıraya gelecek ve onuda silicek.
//Mesela 5 yazsaydım belki toplam üye sayısı 4, nasıl silecek? Tabikide silemeyecek.
//Anladığım kadarıyla sizin yaptığınızda rastgele gelen sayıyı üyenin sıra numarası olarak düşünüp onu siliyorduk.
checkedListBox1.Items.RemoveAt(1);
//bu şekilde çok stabil çalışmıyor ama benim için önemli değil.
}
}
}