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