Nick,
Yes this can be done. There are a few options, the first one that comes to mind would be to use a hidden field and use 'SQL Default' instead of static text for the default. Depending on what type of number you are wanting there are a few options for the SQL. For example, to return a global identifier (long number) you could use something like this (you have to return only one column called DefaultValue):
Select newid() as DefaultValue
Another example would be to generate a number that is one more than the user count (or maybe do the user count * 5 etc...)
So...
select (count(*) * 5) from Users as DefaultValue
There would generate a unique number. You can also then link the hidden field to a DNN Core Extended field if you wanted to.
-Chad