How to practically construct regular expander graphs? I need to construct d-regular expander graph for some small fixed d (like 3 or 4) of n vertices.

What is the easiest method to do this in practice? 
Constructing a random d-regular graph, which is proven to be a.a.s. an expander?

I also read about Margulis constructions and Ramanujan graphs that are expanders and a construction using a zig-zag product. Wikipedia gives a nice but very short overview: http://en.wikipedia.org/wiki/Expander_graph#cite_note-10
But which method do I choose in practice?

For me, these methods seem all very complicated to implement and in particular to understand and maybe quite specific.
Aren't there easier methods, maybe based on permutations or so, to practically generate a sequence of d-regular expander graphs?  

Is it maybe easier to construct d-regular bipartite expander graphs?

I also have another question: What about families of bad d-regular expanders? Does such a notion make sense? Can one construct a family of d-regular graphs (that are of course connected) that is as bad as possible in the sense of an expander?

Thanks in advance.
If you don't mind graphs with self-loops, the "easiest" expander family is probably this one, giving expanders that are 3-regular.

Start with some prime number $p$, and construct vertices numbered $0$ to $p-1$.
For every vertex $u \ne 0$, connect $u$ to $u-1$ and $u+1$, modulo $p$.
Also connect $u$ to the unique vertex $v$ such that $uv \equiv 1 \mod p$.

As an example, the 7-vertex graph in the family is a 7-cycle with vertices numbered sequentially around the cycle; there are self-loops on $6$, $0$, and $1$; finally, there are chords joining $3$ and $5$, and $2$ and $4$.

See https://mathoverflow.net/questions/124708/an-expander-graph  for further discussion and references.  There are lots of more detailed pointers by searching on "expander" at CSTheory, Math.SE, and MO.

As Yuval Filmus points out, the random construction is likely to give better results in general, but of course may not yield an expander (especially for small graphs).