HTML, JavaScript, PHP, ASP, .Net, C#, MySQL, Ms. SQL ...
Casos de uso para um número de série:
- Chave de acesso única para acesso a determinado sistema;
- Identificação única para usuários;
- Venda de software;
- Cupom de desconto;
- Vouchers.
O Ms. SQL Server possui um tipo de coluna específica para tal situação: UNIQUEIDENTIFIER
Para testar:
SELECT NEWID()
Exemplo de uso:
CREATE TABLE TB_VOUCHER
(
ID INT IDENTITY PRIMARY KEY,
CHAVE UNIQUEIDENTIFIER DEFAULT NEWID(),
UTILIZADO BIT
)
INSERT INTO TB_VOUCHER (UTILIZADO) VALUES (0)
INSERT INTO TB_VOUCHER (UTILIZADO) VALUES (0)
INSERT INTO TB_VOUCHER (UTILIZADO) VALUES (0)
INSERT INTO TB_VOUCHER (UTILIZADO) VALUES (0)
INSERT INTO TB_VOUCHER (UTILIZADO) VALUES (0)
SELECT * FROM TB_VOUCHER
Resultado:

Quanto ao MySQL, não há solução. A não ser que utilize o PHP em conjunto com a função str_shuffle(). Veja:
$chave = str_shuffle('0123456789ABCDEF').str_shuffle('0123456789ABCDEF');
$chave= substr($chave,0,8).'-'.substr($chave,8,8).'-'.substr($chave,16,8).'-'.substr($chave,24,8);
echo $chave;
Gerando assim:
DA60182F-3C49E57B-CB31E8FD-7A045926
7B108FD6-95CA2E34-346F9A5B-2CDE1807
3EF654CB-1D287A09-5B943C7F-A801E6D2
C57ABE4F-D0219683-3C4BA5DE-6089F172
25D076AB-E3819FC4-490A16C2-8F3E7B5D
FC4698EA-D7B32150-E9017BF4-32DA85C6
54D0326E-9CBA178F-D659BF1E-2C8437A0
59A1F637-0C2B48DE-28135FDB-7A6E9C04
AE19BD37-6250CF48-3056DB42-E9C1F8A7