I have just spotted a fatal error in your code:
You need to switch off events when you change a cell in the worksheet change event
this is because changing a cell causes the worksheet change event to trigger again so you end in a perpetual loop
do this by putting
application.enable event false/ true around the code that changes the cells

[VBa]Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 1 Then Exit Sub
Application.EnableEvents= False
Cells(Target.Row, 3) = Evaluate("=IF(B" & Target.Row & "=1,RANDBETWEEN(0,9),"""")")
application.Enableevents= True
End Sub[/vba]