[proofplan]
We embed the bounded sequence into $X^{**}$ via the canonical isometric embedding $J$, apply the [Banach-Alaoglu Theorem](/theorems/212) to extract a weak-* convergent subsequence in $X^{**}$, use reflexivity of $X$ to identify the weak-* limit as an element of $X$ (since $J$ is surjective), and translate weak-* convergence in $X^{**}$ back to weak convergence in $X$.
[/proofplan]
[step:Embed the bounded sequence into $X^{**}$ via the canonical map]
Let $J: X \to X^{**}$ denote the canonical isometric embedding, defined by
\begin{align*}
J: X &\to X^{**} \\
x &\mapsto \bigl[f \mapsto f(x)\bigr].
\end{align*}
Since $J$ is an isometry, $\|J(x_n)\|_{X^{**}} = \|x_n\|_X \leq M$ for all $n \in \mathbb{N}$, so the sequence $\{J(x_n)\}_{n=1}^{\infty}$ lies in the closed ball $\overline{B}(0, M) \subset X^{**}$.
[/step]
[step:Apply Banach-Alaoglu to extract a weak-* convergent subsequence in $X^{**}$]
The [Banach-Alaoglu Theorem](/theorems/212) states that the closed ball $\overline{B}(0, M) \subseteq X^{**}$ is compact in the weak-* topology of $X^{**}$ (the topology induced by evaluation against elements of $X^*$). The sequence $\{J(x_n)\}$ lies in this compact set.
In the separable case, the weak-* topology on $\overline{B}(0, M)$ is metrisable (since separability of $X^*$ provides a countable family of evaluation functionals inducing the topology), and every compact metrisable space is sequentially compact. In the general case, one either passes to a separable reduction (restricting to the closed linear span of $\{x_n\}$, which is separable) or uses the fact that nets in compact spaces have convergent subnets. In either case, there exists a subsequence $(n_k)_{k=1}^{\infty}$ and an element $\Phi \in X^{**}$ such that
\begin{align*}
J(x_{n_k}) \overset{*}{\rightharpoonup} \Phi \quad \text{in } X^{**},
\end{align*}
meaning $J(x_{n_k})(f) \to \Phi(f)$ for every $f \in X^*$.
[guided]
A subtlety arises here: the [Banach-Alaoglu Theorem](/theorems/212) gives compactness in the weak-* topology, which is a priori a statement about nets, not sequences. In an infinite-dimensional non-separable space, weak-* compact sets need not be sequentially compact.
However, for our application we can always reduce to the separable case. Let
\begin{align*}
Y := \overline{\operatorname{span}}\{x_n : n \in \mathbb{N}\},
\end{align*}
which is a separable closed subspace of $X$. The sequence $\{J(x_n)\}_{n=1}^{\infty}$ lies in the closed ball $\overline{B}(0, M) \subset Y^{**}$. Since $Y$ is separable, the weak-* topology on bounded subsets of $Y^{**}$ is metrisable (a countable dense subset of $Y$ provides a countable family of evaluation functionals that induces the topology). In a compact metrisable space, every sequence has a convergent subsequence, so there exist a subsequence $(n_k)$ and $\Phi \in Y^{**}$ with
\begin{align*}
J(x_{n_k}) \overset{*}{\rightharpoonup} \Phi \quad \text{in } Y^{**}.
\end{align*}
Since $Y$ is reflexive (as a closed subspace of the reflexive space $X$), $\Phi = J(x)$ for some $x \in Y \subseteq X$, and the weak-* convergence in $Y^{**}$ translates to weak convergence in $X$.
[/guided]
[/step]
[step:Use reflexivity to identify the weak-* limit as an element of $X$]
Since $X$ is reflexive, the canonical embedding $J: X \to X^{**}$ is surjective. Therefore $\Phi = J(x)$ for a unique $x \in X$. Moreover, $\|x\|_X = \|J(x)\|_{X^{**}} = \|\Phi\|_{X^{**}} \leq M$ (the norm bound is preserved because weak-* limits in the closed ball stay in the closed ball, as the ball is weak-* closed).
[guided]
This is the step where reflexivity is consumed.
The canonical embedding $J: X \to X^{**}$ is always an isometric injection, but reflexivity is the condition that $J$ is also surjective.
Without reflexivity, the weak-* limit $\Phi \in X^{**}$ might not correspond to any element of $X$ -- it would be an element of the bidual outside the canonical image $J(X)$.
Since $X$ is reflexive, $J$ is surjective, so $\Phi = J(x)$ for a unique $x \in X$.
The norm bound $\|x\|_X = \|J(x)\|_{X^{**}} = \|\Phi\|_{X^{**}} \leq M$ is preserved because weak-* limits in the closed ball $\overline{B}(0,M) \subset X^{**}$ remain in that ball (the ball is weak-* closed).
Non-reflexive spaces such as $L^1$, $\ell^1$, and $c_0$ do not enjoy this property: the bidual is strictly larger than $X$, and bounded sequences in these spaces need not have weakly convergent subsequences.
[/guided]
[/step]
[step:Translate weak-* convergence in $X^{**}$ to weak convergence in $X$]
For every $f \in X^*$, unfolding the definitions gives
\begin{align*}
f(x_{n_k}) = J(x_{n_k})(f) \to J(x)(f) = f(x).
\end{align*}
The first equality uses the definition of $J$: $J(x_{n_k})$ is the functional that sends $f$ to $f(x_{n_k})$. The convergence is the weak-* convergence $J(x_{n_k}) \overset{*}{\rightharpoonup} \Phi = J(x)$ evaluated at $f$. The final equality is again the definition of $J$.
Since $f \in X^*$ was arbitrary, this is precisely the statement $x_{n_k} \rightharpoonup x$ weakly in $X$.
[/step]