Spoofing MAC address in a persistent fashion
Run EDITOR=nano sudo crontab -e and add a line like this:

@reboot ifconfig en0 ether $(printf \%02x $(($RANDOM\%128*2)))$(head -c4 /dev/random|hexdump -v -e '/1 ":\%02x"')

Commands scheduled by @reboot are run after you restart or turn the computer on but not after you log out and back in. % has to be escaped as \% in crontab.

From a comment at http://osxdaily.com/2010/11/10/random-mac-address-generator/:


  You need to be careful that this does not generate multicast mac addresses, as these are technically illegal as source macs. The strict definition of a multicast mac address is one where the least significant bit of the first byte is set to 1. So if the first octet’s LSB is 1 (01, 03,05, a1, etc) you technically have a multicast mac source. See http://en.wikipedia.org/wiki/MAC_address.
  
  Using multicast src macs might not cause immediate connectivity problems, but certainly has implications for switches learning the mac address preventing unicast flooding, and routers allowing arp to resolve.
  
  Cisco, for example, will not allow mac learning if the source is non-unicast, and Cisco routers will not install arp entries for multicast macs to unicast ip addresses.