A variable is a symbol that represents some quantity. A variable is useful in mathematics because you can prove something without assuming the value of a variable and hence make a general statement over a range of values for that variable.
A random variable is a value that follows some probability distribution. In other words, it's a value that is subject to some randomness or chance.
In linear regression, $X$ may be viewed either as a random variable that is observed or it can be considered as a predetermined fixed value which, as LEP already discussed, the investigator chooses. As you've pointed out, we usually assume the later (whether or not this assumption is correct is another story). However, the OLS estimator is unbiased whether or not you treat $X$ as random and the estimate of the variance of the OLS estimator is unbiased for the variance of $\hat{\beta}_{OLS}$ whether or not you treat $X$ as random. These are a couple reasons people don't get too caught up in whether or not to assume $X$ is random in regression.
If you treat $X$ as random, I will show that the OLS estimator is still unbiased below.
Let $X$ be a random variable and let $\hat{\beta}_{OLS} = (X^{T}X)^{-1} X^{T} Y$.
$E(\hat{\beta}_{OLS})=E[E[\hat{\beta}_{OLS}|X]]=E[E[(X^{T}X)^{-1} X^{T} Y|X]]=E[(X^{T}X)^{-1} X^{T}E[ Y|X]] =E[(X^{T}X)^{-1} X^{T}X\beta] =E[\beta]=\beta$
If you treat $X$ as random, I will show that the estimate of the variance of $\hat{\beta}_{OLS}$ is unbiased for the unconditional variance below.
$Var(\hat{\beta}_{OLS})=Var(E(\hat{\beta}_{OLS}|X)) + E(Var(\hat{\beta}_{OLS}| X))=Var(\beta)+ E(Var(\hat{\beta}_{OLS}|X))=E(Var(\hat{\beta}_{OLS}|X))=E(\sigma^{2}( X^{T} X)^{-1})$