HTTP не имеет состояния . Это означает, что он не будет сохранять значения в переменной, как вы делаете это при программировании окон. Поэтому всякий раз, когда вы нажимаете на кнопку, она выполняется так же, как и при начальной загрузке страницы. Но ждать !. У вас есть значение, доступное в текстовом поле. Таким образом, вы можете прочитать значение оттуда и сохранить его в переменной.
protected void ranPlayer_Click(object sender, EventArgs e)
{
playerTotalValue =0;
if(!String.IsNullOrEmpty(playerTotal.Text))
{
playerTotalValue =Convert.ToInt32(playerTotal.Text);
}
int randomNumTwo = random.Next(1, 10);
playerTotalValue = playerTotalValue + randomNumTwo; //playerTotalValue gets reset to zero on every click
playerTotal.Text = playerTotalValue.ToString();
}