toCharArray metodunu kullanmayadabilirsiniz aslında. Kullandığınızda ekstradan bir char dizisi tanımlamış oluyorsunuz. c# da her string bir char dizisidir zaten otomatik olarak arka planda tanımlanır.
string kelime = "TURKSMF";
private void Form1_Load(object sender, EventArgs e)
{
MessageBox.Show(kelime[0].ToString());
}
Buradaki kodda ekran çıktısı "T" dir.
Sizin kodlarınıza gelecek olursak
private void button1_Click(object sender, EventArgs e)
{
string kelime = "KROKODİL";
a1.Text = kelime[0].ToString();
a2.Text = kelime[1].ToString();
a3.Text = kelime[2].ToString();
a4.Text = kelime[3].ToString();
a5.Text = kelime[4].ToString();
a6.Text = kelime[5].ToString();
a7.Text = kelime[6].ToString();
a8.Text = kelime[7].ToString();
}
bu şekilde yazmanız kafidir. Araya fazla kod yazmışsınız
bu satırı silince çalışır

char[] alar = new char[kelime.Length];
İyi çalışmalar
----Edit-----
Dostum kusura bakma random olarak istediğini sonra farkettim
private void button1_Click(object sender, EventArgs e)
{
string kelime = "KROKODİL";
Random rnd = new Random();
a1.Text = kelime[rnd.Next(0, kelime.Length)].ToString();
}
bu şekilde yaparsan random olarakda yazdırırsın