Suppose $X$ is separable. Then there is a countable dense subset $\{x_n\}$. Suppose $S \subset X$.
For each $n$ such that $B(x_n,1) \cap S \neq \emptyset$, create a (possibly finite) sequence $s_{n,k}$ as follows: Choose $k$. If $B(x_n,\frac{1}{k}) \cap S \neq \emptyset$, then select any $s_{n,k} \in B(x_n,\frac{1}{k}) \cap S$.
The set $ \{ s_{n,k} \}$ is countable, and I claim that it is dense in $S$.
Suppose $s \in S$, and $\epsilon>0$. Choose $k$ such that $\frac{1}{k} < \frac{\epsilon}{2}$. Then since $\{x_n\}$ is dense, we can find some $x_n$ such that $\| s-x_n\| < \frac{1}{k}$. Since $s_{n,k} \in B(x_n,\frac{1}{k}) \cap S$ by construction, we have $\| x_n-s_{n,k}\| < \frac{1}{k}$. Hence we have $\|s - s_{n,k} \| \le \| s-x_n\| + \| x_n-s_{n,k}\| < \frac{2}{k} < \epsilon$.