Reading the font name is actually quite easy. You will simply need a FOR loop to iterate through all of the True Type fonts on your system. You would put this loop inside your Forms Load event. It will populate, in this case ComboBox1, with all the fonts in your system.
CODE
For Each font As FontFamily In FontFamily.Families
Me.ComboBox1.Items.Add(font.Name)
Next font
You could use the SelectedIndexChanged event of the combobox to cause the font to change. Which means when you SELECT, by clicking the font name in the combo box it will change the selected text automatically. You would put the following line of code inside the SelectedIndexChanged event of your combobox.
Now comes the important part causing the selected font in the RichTextBox to change.
CODE
Me.RichTextBox1.SelectionFont = New Font(Me.ComboBox1.Text, 12)
In this example I am supplying two parameters to the New Font. The first parameter is the Text, which is the font name, of the combobox and the second parameter is the size of the font. I chose to keep it static for this example at 12 points.
But you could create a second combobox which contains all the different font sizes in points.
In which case the code would look like this:
CODE
Me.RichTextBox1.SelectionFont = New Font(Me.ComboBox1.Text, CInt(Me.ComboBox2.Text))
You need to convert the text value into a integer value for the point size of the font, hence the CInt.
Thats all you need to change the font of selected text in a RichTextBox.
Here is a screenshot of a simple one I put together for this example.