Your character(s ?) is not truely "random", but it won't be the number you're looking for.
The first issue is that the entrypoint for a .com file is the beginning of your .text section. This means that the CPU will attempt to execute your data. The "old school" way is to put "jmp main" first, then your data, then start your code at "main".
Diversion: I really don't like "main" as a label, unless it's a "C-style" main. The word "main" has no special meaning in asm, unlike C. It's as good as any other label name. However, it could confuse a human into thinking you've got a "C-style" main. It does NOT indicate an entrypoint unless you're linking with C. That's just a personal preference... I'll leave it...
In a .com file, everything is in one segment (section). What Nasm does when it sees "section .data" (in "-f bin" output format) is to move it after your code (and "section .bss", if any, after that). Or, you could just move your data to the end with the same effect.
int 21h/1 returns a single character in al - ah is probably still 1. The characters representing decimal digits are not the same as the numbers represented. So if the user types "1", we see 0x31 (or 49 decimal) in al. So ax is 0x131, and this is what you put in [num1]. Not very useful for adding something to. What you want to do is "sub al, '0'" (can write it as "sub al, 48" or "sub al, 0x30" - same code but I like '0' as it makes the purpose clearer... maybe), and then put that value in [num1]. "mov [num1], al", or if you want to use ax, "mov ah, 0" first. It does no harm to put a value into a buffer that's "too big" - putting a value into a buffer that's "too small" is a serious problem!
Do the same with "[num2]". At this point, you can add 'em together. We only have a useful byte, but using 16-bit registers won't hurt (won't do any good, either). Now, if the sum is still one digit, your remaining code will probably work. int 21h/2 prints only the character in dl, but it won't hurt to have something (probably 0) in dh.
If the sum exceeds one digit, you'll need to provide a "itoa" routine of some sort. Since this is probably "the most frequently asked question", you can probably find an example around somewhere. If not. I'll try to come up with something... but not right now... Good luck!
Best,
Frank