How to generate random MAC addresses
Set the count, choose your format options, and press Generate. The list appears one address per line in the output box, with the count shown in the header. The tool does not update as you type: nothing happens until you press the button, so you can set every option first and generate once.
The separator select offers a colon, giving 00:1a:2b:3c:4d:5e, a hyphen, giving 00-1a-2b-3c-4d-5e, or none at all, giving 001a2b3c4d5e. The case select switches the hex digits between lower and upper case. Both apply to the whole batch.
The count field accepts 1 through 5000 and starts at 10. Values outside that range are clamped and written back into the field, so typing 90000 leaves you with 5000 rather than an error.
- Set how many addresses you want, 1 to 5000
- Choose colon, hyphen, or no separator
- Choose lower or upper case hex
- Press Generate, then Copy
The two bits that actually matter
A MAC address carries two flag bits in the first octet, and this generator exposes both. The second-lowest bit is the administration bit. When it is set, the address is locally administered, which means it is not claimed from any manufacturer block and is safe to invent. When it is clear, the address claims to be universally administered, which is what real hardware uses.
The lowest bit of the first octet is the transmission bit. Clear means unicast, a single interface. Set means multicast, a group. Nearly every address you will want is unicast.
Both selects default to Random, which leaves the bit however the random draw produced it. If you are inventing addresses for a lab, a config file, or a test fixture, the correct combination is locally administered plus unicast. That produces first octets like 02, 06, 0a, and 0e, and it guarantees the address cannot collide with real hardware from a real vendor.
- Locally administered plus unicast is the safe combination for test data
- Universally administered addresses mimic real hardware
- Multicast is rarely what you want for a device fixture
What the randomness is and is not
The addresses are drawn with the standard JavaScript random number generator, not a cryptographic one. For filling a spreadsheet, seeding a lab, writing test fixtures, or populating a demo inventory, that is entirely fine. For anything where an attacker guessing the next value would matter, it is not, and you should generate the values with a cryptographic source instead.
There is also no vendor prefix database in this tool. All six octets are random apart from the two flag bits, so an address can happen to fall inside a real registered manufacturer block. If you specifically need an address that looks like it came from a particular vendor, set the first three octets yourself afterward.
The batch is not deduplicated. Each line is drawn independently, so in a run of 5000 a repeat is possible, though at roughly 281 trillion combinations it is extremely unlikely. If uniqueness is a hard requirement, run the list through Remove Duplicate Lines afterward.