Set your autonumber to increment, its sole purpose is to be unique.  Never knew, much less used, that there was a Random option.
1.  You've over normalized with lookup tables.  Tables with just 1 real field of data (autonumbers aren't real data, they are internal to the database) do not need to exist.  So, instead of having the numeric field [EventPriorityID] in tblEvent is unnecessary.  Instead it should just be a text field where you store the actual value (e.g. Highest, Highe, Normal, etc.).  You've done this a lot.
Now, you can also solve this by combining all your lookup tables into one master lookup table.  You do this by adding a new field to designate what type of lookup the record is for. 
2. You have both AssetID and AssetNumber as foreign keys in tables (tblMainenance, tblEvent) --you only need to link to the primary key of tblAsset which is AssetID.
3. Possibly--Circluar relationships.  tblAsset has FacilityID, tblEvent has AssetID and FacilityID. That means the facility for the Asset could be different from the Event--is that correct? If not, then FacilityID probably comes out of tblEvent.
4. Possibly--Calculated values.  You don't store values you can determine from other data.  Often Status is calculable, I'm not sure about your data, so answer this:   For an event, you know when its been opened, you know if its been assigned, you know if its been closed--with all that information can you logically deduce its status without actually knowing which status has been assigned to [EventStatusID]?  If so, you don't need to store the Status, you just deduce it.