C# Weapon class generation

Hello everybody, i am working on learning about classes and such, and ive tried to make my own.
using UnityEngine;
public class Weapons {
private WeaponTypes TypeOfWeapon;
private Rarity howRare;
private WeaponKind KindOfWeapon;
private int Range;

	public Weapons(){
		TypeOfWeapon = WeaponTypes.Melee;
		howRare = Rarity.Common;
		KindOfWeapon = WeaponKind.Axe;
	}
}

public enum WeaponTypes{
	Melee,
	Ranged,
	Magic
}
public enum WeaponKind{
	Sword,
	Axe,
	Bow,
	CrossBow,
	Wand,
	Staff
}
public enum Rarity{
	Common,
	UnCommon,
	Rare,
	UberRare
}

and it is fine for now.
my question is :
I want to make a weapon be generated from these information.
How would i do? would i make a different script to do so? would i make a script that inherits from this class for each weapon kind i want? and attach it on script? also, how would i go around attaching diffrent models for each weaponkind enum?

Thanks

This randomly generates the item.

public WeaponType weapon;
public WeaponKind kind;
public Rarity rarity;


void Start(){
weapon = GetRandomEnum<WeaponType>();
kind = GetRandomEnum<WeaponKind>();
rarity = GetRandomEnum<Rarity>();
}

There are very many ways of how could you manage your scripts. This is where you have to think yourself, how you will manage your game system. Simplest way is to include everything for each item, all enums, classes etc. Maybe there could be one class (script) with all the information about what the weapon/item could be, and in each item script just get that script as component and generate the randomness.

I made them public so you could see them in inspector.

If you download this project, you might find some scripts that interest you. It has a great weapons selection script you could learn from.