  We wish to generate list-decodable codes over small alphabets using as little
randomness as possible. Specifically, we hope to generate codes achieving what
we term the Elias bound, which means that they are $(\rho,L)$-list-decodable
with rate $R \geq 1-h(\rho)-O(1/L)$. A long line of work shows that uniformly
random linear codes (RLCs) achieve the Elias bound: hence, we know $O(n^2)$
random bits suffice. Prior works demonstrate that just $O(Ln)$ random bits
suffice, via puncturing of low-bias codes. These recent constructions are
combinatorial.
  We provide two new constructions, which are algebraic. Compared to prior
works, our constructions are simpler and more direct. Furthermore, our codes
are designed in such a way that their duals are also quite easy to analyze. Our
first construction -- which can be seen as a generalization of the Wozencraft
ensemble -- achieves the Elias bound and consumes $Ln$ random bits.
Additionally, its dual code achieves the GV-bound with high probability, and
both the primal and dual admit quasilinear-time encoding algorithms. The second
construction consumes $2nL$ random bits and yields a code where both it and its
dual achieve the Elias bound. As we discuss, properties of a dual code are
often crucial for applications in cryptography.
  In all of the above cases -- including the prior works achieving randomness
complexity $O(Ln)$ -- the codes are designed to "approximate" RLCs. Namely, for
a given locality parameter $L$ we construct codes achieving the same $L$-local
properties as RLCs. This allows one to appeal to known list-decodability
results for RLCs and thereby conclude that the code approximating an RLC also
achieves the Elias bound. As a final contribution, we indicate that such a
proof strategy is inherently unable to generate list-decodable codes of rate
$R$ over $\mathbb F_q$ with less than $L(1-R)n\log_2(q)$ bits of randomness.
