If $X$ is a Banach space and $X^*$ is separable, then $X$ is separable.
Here, David Mitra mentions a proof using the Riesz lemma. However, I do not fully understand it.
You could also use Riesz' lemma:
Let $Y$ be a proper closed subspace of the normed space $X$ and $0<\theta<1$. Then there is an $x_\theta$ of norm 1 for which $\Vert x_\theta-y\Vert>\theta$ for all $y\in Y$.
If $X$ were not seperable, you could use Hahn Banach to construct uncountably many functionals $f_\alpha\in X^*$ with $\Vert f_\alpha-f_\beta\Vert\ge \theta$ whenever $\alpha\ne\beta$.
If $X$ is not separable, why does that allow us to construct uncountably many separated functionals $f_\alpha$?
I see why this fact would imply the theorem. Taking a countable dense set and $\epsilon$ balls around each point in that set, we see that two elements of the uncountable set $\{ f_\alpha\}$ must lie in a single ball. But then they are at most $2\epsilon$ apart. Making $\epsilon$ small shows we can find two elements of the set less than $\theta$ apart, a contradiction.
Suppose that $X$ is not separable and fix $\theta\in(0,1)$. Let $\Omega$ be the set of countable ordinals. Fix $\alpha\in\Omega$ and using transfinite induction, suppose that $x_{\beta}\in X$ and $f_{\beta}\in X^*$ have already been defined for all $\beta\in\Omega$ such that $\beta<\alpha$ (if $\alpha=\min\Omega$, simply define $x_{\alpha}\equiv0$ and $f_{\alpha}\equiv 0$).
Let $$X_{\alpha}\equiv\{x_{\beta}\,|\,\beta\in\Omega,\,\beta<\alpha\}.$$ Since $X_{\alpha}$ is countable and $X$ is not separable, it follows that $Y_{\alpha}\equiv\overline{\operatorname{span}X_{\alpha}}$ is a proper closed subspace (I will prove this at the end of the post). Pick any $x_{\alpha}\in X\setminus Y_{\alpha}$ such that \begin{align*} \|x_{\alpha}\|=&\,1,\\ \inf_{y\in Y_{\alpha}}\|x_{\alpha}-y\|\geq&\,\theta, \end{align*} which is possible by Riesz's lemma. Now, using the Hahn—Banach theorem, there exists $f_{\alpha}\in X^*$ such that \begin{align*}f_{\alpha}(y)=&\,0\quad\forall y\in Y_{\alpha},\\ \|f_{\alpha}\|=&\,1,\\ f_{\alpha}(x_{\alpha})=&\,\inf_{y\in Y_{\alpha}}\|x_{\alpha}-y\|\geq\theta; \end{align*} see, for example, Theorem 5.8(a) in Folland (1999, p. 159).
Now, the family $\{f_{\alpha}\}_{\alpha\in\Omega}$ is uncountable (given that $\Omega$ is uncountable and, as the next argument will reveal, $f_{\alpha}$ and $f_{\beta}$ are distinct for distinct $\alpha,\beta\in\Omega$). Suppose that $\alpha,\beta\in\Omega$ and $\alpha\neq\beta$. Without loss of generality, assume that $\beta<\alpha$. Then, $x_{\beta}\in X_{\alpha}\subseteq Y_{\alpha}$, so $f_{\alpha}(x_{\beta})=0$. Also, $f_{\beta}(x_{\beta})\geq\theta$. Therefore, $$\|f_{\alpha}-f_{\beta}\|=\sup_{\substack{x\in X\\\|x\|\leq1}}|f_{\alpha}(x)-f_{\beta}(x)|\geq|f_{\alpha}(x_{\beta})-f_{\beta}(x_{\beta})|\geq\theta.$$
The following claim reveals that if $X$ is not separable, then the subspace $\operatorname{span} X_{\alpha}$ is not dense for any $\alpha\in\Omega$.
Proof: Let $\mathbb S$ be a countable dense subset of the underlying field ($\mathbb R$ or $\mathbb C$, presumably). Define, for each $n\in\mathbb N$, $$L_n\equiv\{q_1 x_1+\ldots+q_n x_n\,|\,q_1,\ldots,q_n\in\mathbb S\}$$ and $L\equiv\bigcup_{n=1}^{\infty} L_n$. It is easy to see that $L$ is countable.
I claim that $L$ is dense. To see this, pick any $x\in X$ and $\varepsilon>0$. Since $\operatorname{span} C$ is dense, there exist some $n\in\mathbb N$ and members of the underlying field $p_1,\ldots,p_n$ such that $$\left\|x-\sum_{m=1}^np_mx_m\right\|<\frac{\varepsilon}{2}.$$ Now, for each $m\in\{1,\ldots, n\}$, pick $q_m\in\mathbb S$ such that $$|p_m-q_m|<\frac{\varepsilon}{2n(\|x_m\|+1)}.$$ Then, $y\equiv\sum_{m=1}^n q_m x_m\in L$ and $$\|x-y\|\leq\left\|x-\sum_{m=1}^np_mx_m\right\|+\left\|\sum_{m=1}^n(p_m-q_m)x_m\right\|<\frac{\varepsilon}{2}+\sum_{m=1}^n|p_m-q_m|\|x_m\|<\frac{\varepsilon}{2}+\frac{\varepsilon}{2}=\varepsilon.$$ Hence, $x\in\overline{L}$ and the proof is complete. $\quad\blacksquare$